mysql Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

错误缘由:/var/lib/mysql目录中socket文件不存在。
链接mysql服务器有两种方式:tcp链接,经过socket文件链接。经过socket文件,启动mysql服务,mysql服务会自动生成一个sock文件,生成的sock文件默认放在 --datadir=/var/lib/mysql,mysql默认从/var/lib/mysql目录读取sock文件。mysql

解决办法:
一、看看/var/lib/mysql/mysql 有没有mysql.sock文件
二、没有mysql.sock,重启mysql服务,看看有没有。
三、没有的话,ps aux|grep mysql|grep -v 'grep' 查看mysql服务生成的sock在哪一个目录,看看这个目录有没有。
四、若是mysql服务生成在其余目录,解决办法有:
方法1、修改mysql服务生成的目录,在my.cnf 中[mysqld] socket
方法2、mysql从/var/lib/mysql/读取sock文件,创建一个软链接,或者copy过来
方法3、修改mysql读取的目录,在my.cnf 中[mysql] socket
方法4、启动指定socket,mysql -uroot -p123456 --socket='/var/lib/mysql/mysql.sock'

注意:
一、经过socket,只能在本地机器上链接。
二、使用-hlocalhost就是通过socket,不通过网络,经过netstat 看不到tcp链接,能够认为mysql与mysql.sock文件交互,向里面写数据,从里面读取数据。
三、使用-h127.0.0.1就是通过tcp,经过netstat 能够看到链接。sql

相关文章
相关标签/搜索