最后通过这个命令解决了。
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
看到的另外一篇帖子这么说:
楼主,这个mysql.sock应该是mysql的主机和客户机在同一host上的时候,使用unix domain socket做为通讯协议的载体,它比tcp快。通常遇到这个问题的原因就是你的mysql server没运行起来。
看看你的 /tmp/mysql.sock 这个文件存在否?正常情况下它应该在那里的,或者用 netstat 看看结果中是否有
Active UNIX domain sockets
db200000 stream 0 0 0 db2000a0 0 0 /tmp/mysql.sock 这样的东西存在。
linux下连接本机mysql有两种方式:1、socket 方式2、tcp/ip方式你的估计就是这种问题,有些时候使用tcp/ip方式,有些时候是另外一种。所以你可以有两种方式解决:1、直接强制使用tcp/ip方式 2、把socket补上方法:1、mysql 后面加个 --protocol=tcpip2、 关闭 mysql , cd 到 /tmp 然后输入: ln -s /var/lib/mysql/mysql.sock mysql.sock , 启动 mysql
编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值
为:/home/mysql/mysql.sock 。操作如下:
vi my.cnf (用vi工具编辑my.cnf文件,找到下列数据修改之)
# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket = /home/data/mysql/mysql.sock (加上此行)