我试图连接到MySQL服务器,但它给我的套接字问题,我编辑my.cnf从/var/lib/mysql/mysql.sock到/home/mysql/mysql.sock铌:问题存在之前移动MySQL数据库文件新的目录。
[root@dc ~]# /usr/bin/mysql -u root -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) [root@dc ~]# ps aux | grep mysqld root 8472 0.0 0.0 108216 1596 pts/2 S 10:18 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/home/mysql --socket=/home/mysql/mysql.sock --pid- file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql mysql 8691 0.1 0.0 543468 47860 pts/2 Sl 10:18 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/home/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/home/mysql/mysql.sock root 8825 0.0 0.0 103356 852 pts/2 S+ 10:20 0:00 grep mysqld
mysqld指令在my.cnf下:
[mysqld] datadir=/home/mysql socket=/home/mysql/mysql.sock
尝试将套接字添加到客户端指令中的my.cnf。
[mysql] # CLIENT # port = 3306 socket = /home/mysql/mysql.sock [mysqld_safe] socket = /home/mysql/mysql.sock nice = 0 [mysqld] # GENERAL # user = mysql default-storage-engine = InnoDB pid-file = /var/run/mysqld/mysqld.pid socket = /home/mysql/mysql.sock
你是否证实文件/home/mysql/mysql.sock存在和可读等?
我在过去曾经看到过这样的情况,那就是文件没有被创build或者无法被访问。
另外,在执行'/etc/init.d/mysqld restart'*时,日志中是否有错误?
// Mike *或任何您的操作系统要求重新启动守护程序/服务
你的ps输出显示,你的mysqld的套接字存储在:
/home/mysql/mysql.sock
但你的MySQL客户端尝试默认的:
/var/lib/mysql/mysql.sock
所以你可以尝试:
/usr/bin/mysql -u root -p -S /home/mysql/mysql.sock