Mysql 服务器关闭后出现错误 2002

Mysql error 2002 after server shutdown

服务器昨天因为停电而关闭了。之后,我尝试连接到 Mysql,但只收到与 mysql.sock 相关的 2002 错误。不管怎样,我已经用这个解决方案解决了这个问题:

Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)

sudo chmod -R 755 /var/lib/mysql/

但我的问题是:为什么?为什么关机会导致此错误?如何防止这种情况再次发生?

首先检查“/var/log/mysqld.log”以查看有关 file/directory 权限的消息

如果 MySQL 服务器意外终止,MySQL 套接字在重启后未重置

由于电源关闭,现有的mysql进程被终止并且套接字文件没有被正确删除,因为这是不是正常关机。 MySQL 服务器不再尝试在套接字未被任何进程使用时验证 MySQL 套接字的存在,因为检查套接字是否存在的块只在有 PID 附加到另一个时才重要插座的末端。在不干净的重新启动时,此套接字将持续存在并因此导致失败。

解决方案: 我想最简单的事情就是删除套接字检查。如果没有 mysqld pids,那么套接字的存在可能不是有用的检查

  1. Why a shutdown caused this error?

    错误表明 MySQL 没有绑定到它的套接字。它可能无法绑定到它的套接字,因为它似乎仍然绑定到另一个进程(即未完全关闭的 MySQL 实例)。

  2. How prevent this from happening again?

    安装 UPS(不间断电源),它可以提供备用电源(来自电池),同时向服务器发出主电源出现故障的信号。这使服务器有机会干净地关闭,这样它的文件就不会处于损坏状态。