MySQL Study案例之--MySQL客户端连接故障


系统环境

操作系统:RedHat EL6

DB Soft:  MySQL 5.6.4-m7

    在系统安装了源码包 MySQL 5.6.4-m7版本,启动服务后,客户端连接失败 !


[root@rh6 ~]# cd /usr/local/mysql/
[root@rh6 mysql]# cd bin
[root@rh6 bin]# ./mysql -u root -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13)

--连接server失败

[root@rh6 bin]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.66 Source distribution
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

--连入了系统自带的5.1.66的版本


解决方法:

查看配置文件,并修改

[root@rh6 bin]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

更改socket参数:

[root@rh6 bin]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/tmp/mysql.sock
#socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
~

验证:

停止mysqld进程:

[root@rh6 bin]# ps -ef |grep mysql
root      4482  4456  0 12:27 pts/3    00:00:00 /bin/sh /usr/bin/mysqld_safe --user=mysql
mysql     4553  4482  0 12:27 pts/3    00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root      4590  4456  1 12:29 pts/3    00:00:00 grep mysql

[root@rh6 bin]# pkill mysql
[root@rh6 bin]# ps -ef |grep mysql150206 12:30:03 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
root      4597  4456  0 12:30 pts/3    00:00:00 grep mysql
[1]+  Done                    mysqld_safe --user=mysql  (wd: ~)
(wd now: /usr/local/mysql/bin)
[root@rh6 bin]# ps -ef |grep mysql
root      4599  4456  0 12:30 pts/3    00:00:00 grep mysql

重新启动mysqld进程:
[root@rh6 bin]# ./mysqld_safe &
[1] 4602
[root@rh6 bin]# 150206 12:30:17 mysqld_safe Logging to '/var/log/mysqld.log'.
150206 12:30:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

客户端连接成功:
[root@rh6 bin]# ./mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.4-m7 Source distribution
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql> status
--------------
./mysql  Ver 14.14 Distrib 5.6.4-m7, for Linux (x86_64) using  EditLine wrapper

Connection id:          3
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.6.4-m7 Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql.sock
Uptime:                 26 min 33 sec

Threads: 1  Questions: 6  Slow queries: 0  Opens: 66  Flush tables: 1  Open tables: 59  Queries per second avg: 0.003
--------------

mysql>


@至此,问题解决