ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
这个错误表示MySQL客户端无法通过Unix域套接字连接到MySQL服务器。
sudo systemctl status mysql
# 或
sudo service mysql status
如果服务未运行,启动MySQL服务:
sudo systemctl start mysql
# 或
sudo service mysql start
查看MySQL配置的套接字文件路径:
sudo grep "socket" /etc/mysql/my.cnf
# 或在其他可能的位置查找
sudo grep -r "socket" /etc/mysql/
确认文件是否存在:
ls -l /var/run/mysqld/mysqld.sock
如果套接字文件路径不匹配,可以明确指定:
mysql --socket=/path/to/mysql.sock -u username -p
确保MySQL用户有权限访问套接字文件:
sudo chown -R mysql:mysql /var/run/mysqld/
sudo chmod -R 755 /var/run/mysqld/
如果套接字连接有问题,可以尝试使用TCP/IP连接:
mysql -h 127.0.0.1 -u username -p
df -h
sudo tail -n 50 /var/log/mysql/error.log
# 或
sudo journalctl -u mysql --no-pager -n 50
确保MySQL服务设置为开机自启:
sudo systemctl enable mysql
定期监控MySQL服务状态
确保MySQL配置文件中套接字路径一致
为MySQL运行环境预留足够的磁盘空间
如果以上方法都不能解决问题,可能需要考虑重新安装MySQL或检查系统是否存在更深层次的问题。