我刚刚在Debian上升级了我的MySQL服务器。 但是,现在当我启动服务器,并尝试连接到它,我得到的错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我该如何解决这个问题?
我知道这个问题已经有五个月的时间了,但是由于我在三次不同的升级中遇到了同样的问题,所以我想我会发布我的解决scheme。
在我的情况下,这似乎是由于在Debian更新脚本中的错误(所以这个问题也可能在Ubuntu中出现)。 不知何故,升级过程完成后,一些二进制日志文件将被归为错误的所有权。 这可以防止服务器获得对自己的日志的写入权限,因此无法启动。
在Debian上(至less在我们的服务器上)这些文件都存在于/var/lib/mysql 。 那里的一切都应该由用户mysql和组mysql来拥有。 但是,一些文件mysql-bin.*在升级之后由root拥有。 将日志文件的所有权更改回mysql允许服务器正确启动:
# chown mysql:mysql /var/lib/mysql/mysql-bin.* # /etc/init.d/mysql start
我希望这能节省一些时间。
尝试以下
mkdir /var/run/mysql chown mysql:mysql /var/run/mysql
然后启动mysql …
MySQL最有可能启动失败。 尝试运行ps aux | grep mysqld ps aux | grep mysqld来查看是否有mysql守护进程的进程ID。
为了扩展Shane的评论,查看MySQL日志找不到启动的原因。 默认位置是/var/log/mysql/error.log
首先启动mysql服务器
然后运行这个命令
ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock