昨天晚上,我的MySQL服务器出乎意料地停了下来。 试图重新启动( service mysql restart – 我是根),它只是挂起。 使用mysql -u root -p命令,我得到ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 。 然后我尝试手动启动守护进程( mysqld )。 提示会挂起大约2秒钟,然后返回。 仔细检查错误日志,我得到:
2016-01-22T19:18:32.399584Z 0 [ERROR] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.
2016-01-22T19:18:32.399622Z 0 [ERROR] Unable to setup unix socket lock file.
2016-01-22T19:18:32.399646Z 0 [ERROR] Aborting
然后我尝试了chown mysql /var/run/mysqld , chmod -R 775 /var/run/mysqld , touch /var/run/mysqld/mysqld.sock.lock和apt-get install mysql-community-server --reinstall 。 没有运气。
我环顾四周,找不到解决办法。 任何帮助吗?
注意:我正在使用MySQL社区服务器5.7.10运行Debian 8(Jessie)
注意未来的旅行者:这取决于你的具体configuration,但这很可能是一个问题。 如果你不想禁用locking,请查看syslog,看看你是否得到了对该文件的否认。
你会看到类似于: apparmor="DENIED" operation="open" parent=29871 profile="/usr/sbin/mysqld" name="/run/mysqld/mysqld.sock.lock"
并且可以通过将/run/mysqld/mysqld.sock.lock rw添加到其他/run/*条目附近的/etc/apparmor.d/usr.sbin.mysqld并重新加载apparmor来修复它。
固定。 在[mysqld]部分下添加skip-external-locking到my.cnf ,然后重启整个系统。 这应该解决它,任何人谁发现这一点。 另外,如果您备份了数据,然后尝试恢复并被告知rm ib*使其正常工作,则需要ibdata文件。
我只是有相同的问题,具有相同的确切的错误信息,但在我的情况下,这是由于应用程序库的升级并没有结束它应该的方式。 所以在我的情况下,这只是一个手动运行mysql_upgrade -u adminname -p然后重新启动服务器的问题。