我刚刚升级了 Debian 上的 MySQL 服务器。但是现在当我启动服务器并尝试连接它时,我收到错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我怎样才能解决这个问题?
答案1
我知道这个问题已经有五个月了,但由于我在三次不同的升级中遇到了同样的问题,所以我想无论如何都要发布我的解决方案。
就我而言,这似乎是由于 Debian 更新脚本中的一个错误造成的(因此这个问题也可能出现在 Ubuntu 中)。不知何故,升级过程完成后,一些二进制日志文件最终归属错误。这阻止服务器获得对其自身日志的写访问权限,因此无法启动。
在 Debian 上(至少在我们的服务器上),这些文件都位于 中/var/lib/mysql
。其中的所有内容都应归用户 mysql 和组 mysql 所有。但是,mysql-bin.*
升级后,部分文件归 root 所有。将日志文件的所有权改回 mysql 后,服务器便可以正常启动:
# chown mysql:mysql /var/lib/mysql/mysql-bin.*
# /etc/init.d/mysql start
我希望这可以为某些人节省一些时间。
答案2
尝试以下操作
mkdir /var/run/mysql
chown mysql:mysql /var/run/mysql
然后启动mysql......
答案3
MySQL 很可能无法启动。尝试运行ps aux | grep mysqld
以查看 mysql 守护程序是否有进程 ID。
为了进一步阐述 Shane 的评论,请查看 MySQL 日志以了解其无法启动的原因。默认位置是/var/log/mysql/error.log
答案4
首先启动mysql服务器
然后运行此命令
ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock