查看故障日志,根据日志调整,本次日志如下:
| 2025–04–10T04:57:38.493524Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them. | |
| 2025–04–10T04:57:38.493548Z 0 [Note] Skipping generation of SSL certificates as certificate files are present in data directory. | |
| 2025–04–10T04:57:38.493557Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher. | |
| 2025–04–10T04:57:38.493561Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher. | |
| 2025–04–10T04:57:38.493972Z 0 [Warning] CA certificate ca.pem is self signed. | |
| 2025–04–10T04:57:38.494000Z 0 [Note] Skipping generation of RSA key pair as key files are present in data directory. | |
| 2025–04–10T04:57:38.494052Z 0 [Note] Server hostname (bind-address): '*'; port: 3306 | |
| 2025–04–10T04:57:38.494086Z 0 [Note] IPv6 is available. | |
| 2025–04–10T04:57:38.494091Z 0 [Note] – '::' resolves to '::'; | |
| 2025–04–10T04:57:38.494104Z 0 [Note] Server socket created on IP: '::'. | |
| 2025–04–10T04:57:38.494139Z 0 [ERROR] Unix socket lock file is empty /tmp/mysql.sock.lock. | |
| 2025–04–10T04:57:38.494142Z 0 [ERROR] Unable to setup unix socket lock file. | |
| 2025–04–10T04:57:38.494145Z 0 [ERROR] Aborting |
尝试老办法 找到 /www/server/data/mysql-bin.index 文件清空,无效。
问豆包:
从你提供的新日志信息可知,MySQL 启动失败是由于无法设置 Unix 套接字锁文件,具体错误信息为 Unix socket lock file is empty /tmp/mysql.sock.lock 和 Unable to setup unix socket lock file。下面为你提供几种可能的解决办法:
1. 检查套接字文件和锁文件权限
Unix 套接字文件和锁文件的权限可能不正确,从而导致 MySQL 无法对其进行操作。你可以通过以下命令检查并修改权限:
| # 检查文件权限 | |
| ls -l /tmp/mysql.sock.lock | |
| ls -l /tmp/mysql.sock | |
| # 修改权限 | |
| sudo chmod 660 /tmp/mysql.sock.lock | |
| sudo chmod 660 /tmp/mysql.sock | |
| # 修改文件所有者 | |
| sudo chown mysql:mysql /tmp/mysql.sock.lock | |
| sudo chown mysql:mysql /tmp/mysql.sock |
2. 删除套接字文件和锁文件并重启服务
有时,套接字文件和锁文件可能已损坏。你可以将其删除,然后尝试重新启动 MySQL 服务:
| sudo rm -f /tmp/mysql.sock.lock | |
| sudo rm -f /tmp/mysql.sock | |
| sudo systemctl restart mysql |
4. 检查配置文件
确保 MySQL 配置文件(通常是 /etc/mysql/my.cnf 或 /etc/my.cnf)中的套接字路径配置正确。查找配置文件中的 socket 参数,确保其指向正确的路径:
| [mysqld] | |
| socket = /tmp/mysql.sock |
最终直接删除了mysql.sock.lock 后启动成功,问题解决。