ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock

mysql.sock这个文件有什么用?

连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了或者路径以及配置不对,本地客户识别不到此文件就不能连接。
如果你因为丢失套接字文件而不能连接,你可以简单地通过重启服务器重新创建得到它,因为服务器在启动时重新创建它。

出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 报错这是由于当使用host参数为“localhost”连接Mysql服务时,会优先使用“sock文件”进行连接,而不是使用“IP:端口”进行连接,而mysql尝试使用“sock文件”进行连接时,却无法获取“sock文件”的位置。

]# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

解决此报错两种方法:
1、可以运行

]# find / -name mysql.sock
/tmp/mysql.sock

查找mysql.sock文件路径,然后通过下述命令登录测试正常是可以的

]# mysql -uroot -p -s /tmp/mysql.sock

2、此原因是mysql.sock配置在 [client] 前,会报错'/tmp/mysql.sock' (2),配置在 [client] 后,重启 mysql服务正常即可,样例:

[client]
port=3306
socket=/tmp/mysql.sock

重启MySQL后在mysql -uroot -p登录即可。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock

配置后重启正常

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock

上一篇:关于Docker启动报错:docker.socket: Failed to listen on sockets: Address already in use


下一篇:chrome:// 的秘密!!一些有用的命令!