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登录即可。
配置后重启正常