MySQL 连接错误:”Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)”
当您运行MySQL数据库时,可能会遇到以下错误消息:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
这种错误表明,MySQL无法从应用程序中找到socket文件进行连接。这通常是由于MySQL服务器未启动,或者socket文件已经删除或被移动所致。这篇文章将介绍一些解决此问题的常见方法。
阅读更多:MySQL 教程
方法一:检查MySQL服务器是否正在运行
在开始尝试修复socket连接错误之前,请确保MySQL服务器正在运行。您可以通过运行以下命令来检查MySQL服务器的状态:
systemctl status mysql
如果MySQL服务器正在运行,您应该看到类似以下内容的输出:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-12-24 08:33:33 UTC; 1 day 21h ago
[…]
如果MySQL未运行,则可以将MySQL启动或重新启动以解决此问题。您可以通过以下命令来启动MySQL:
sudo systemctl start mysql
您可以使用下面的命令来重新启动MySQL:
sudo systemctl restart mysql
方法二:寻找并重置socket
如果MySQL服务器正在运行,但仍然出现连接错误,则可以寻找与socket连接有关的配置文件。默认情况下,MySQL socket文件的路径是/var/lib/mysql/mysql.sock。
可以通过应用下面的命令来查找该文件的位置:
sudo find / -type s
该命令会搜索系统上的所有socket文件,您需要查找类似以下的输出:
/var/run/dbus/system_bus_socket
/var/run/docker.sock
/run/docker.sock
/run/systemd/journal/syslog
/run/systemd/private
tmp/mysql.sock
如果您看到/tmp/mysql.sock这样的输出,则MySQL正在使用mysql.sock文件进行连接。您可以在MySQL的配置文件中进行更改来指定不同的socket文件路径。
另一种解决方法是删除MySQL服务器创建的socket文件,因为有时文件可能会损坏或删除。然后,您可以重新启动MySQL以重新创建socket文件。您可以通过以下命令来删除socket文件:
sudo rm /var/lib/mysql/mysql.sock
利用以上的方法,您可以解决MySQL无法连接的socket错误。但在进行修改配置文件或删除文件之前,确保对文件进行正确备份或者再三确认操作是否与实际相符。
极客教程