MySQL守护程序锁定问题

Sam*_*ing 21 mysql sockets debian

昨晚,我的MySQL服务器出乎意料地下降了.在尝试重新启动时(使用service mysql restart- 我是root)它只是挂起.有了这个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并且apt-get install mysql-community-server --reinstall.没运气.

我环顾四周,找不到解决办法.这里有什么帮助?

注意:我正在使用MySQL社区服务器5.7.10运行Debian 8(Jessie)

jor*_*fus 55

我刚碰到这个.mysql安装有点奇怪,缺少/ var/run/mysqld /

MySQLd试图创建套接字和锁定文件,但缺少父目录.我只是创建了目录

sudo mkdir /var/run/mysqld
Run Code Online (Sandbox Code Playgroud)

把它给了mysql

sudo chown mysql:mysql /var/run/mysqld
Run Code Online (Sandbox Code Playgroud)

然后我就能正常启动mysqld.

  • 这解决了我的问题.我使用supervisorctl运行了mysql.它工作正常,直到某个目录丢失.Ubuntu 16.04. (2认同)

小智 6

我今天在Ubuntu服务器上遇到了同样的问题.但我认为解决方案不是禁用锁定.在我的例子中,查看系统日志(dmesg | tailjournalctl -xe)显示它是一个apparmor问题,解决方案可以在这个问题中找到.


Dav*_*che 5

我有以下错误

[ERROR] Unix socket lock file is empty /var/lib/mysql/mysql.sock.lock.
Run Code Online (Sandbox Code Playgroud)

出现此错误的原因是我的服务器空间不足 100% 使用(见下文)

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/xvda1      41153856 28531384  12187364  100% /
Run Code Online (Sandbox Code Playgroud)

确保该文件夹存在并具有适当的权限

chown mysql:mysql /var/lib/mysql/
Run Code Online (Sandbox Code Playgroud)

并确保删除该文件,以便 mysql 服务器可以生成一个新文件

rm /var/lib/mysql/mysql.sock.lock
Run Code Online (Sandbox Code Playgroud)


Sam*_*ing -2

固定的。添加skip-external-lockingmy.cnf该部分下[mysqld],然后重新启动整个系统。对于任何发现这个问题的人来说,这应该可以解决这个问题。此外,如果您备份了数据,然后尝试恢复并被告知要rm ib*使其正常工作,则您需要该ibdata文件。