重启服务器后,mysql5.7数据库依然无法自动启动服务
[root@dba mysql-5.7]# bin/mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
[root@dba mysql-5.7]#
[root@dba mysql-5.7]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Fri 2023-04-14 10:16:07 CST; 23h ago
Process: 1555 ExecStart=/opt/mysql/mysql-5.7/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/opt/mysql/mysql-5.7 --datadir=/opt/mysql/mysql-5.7/data --plugin-dir=/opt/mysql/mysql-5.7/lib/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock --port=3306 (code=exited, status=1/FAILURE)
Main PID: 1555 (code=exited, status=1/FAILURE)
Apr 14 10:16:07 dba systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
Apr 14 10:16:07 dba systemd[1]: Unit mysqld.service entered failed state.
Apr 14 10:16:07 dba systemd[1]: mysqld.service failed.
Apr 14 10:16:07 dba systemd[1]: mysqld.service holdoff time over, scheduling restart.
Apr 14 10:16:07 dba systemd[1]: Stopped MySQL Server.
Apr 14 10:16:07 dba systemd[1]: start request repeated too quickly for mysqld.service
Apr 14 10:16:07 dba systemd[1]: Failed to start MySQL Server.
Apr 14 10:16:07 dba systemd[1]: Unit mysqld.service entered failed state.
Apr 14 10:16:07 dba systemd[1]: mysqld.service failed.
[root@dba mysql-5.7]#
[root@dba mysql-5.7]#
查看错误日志
cat /var/log/mysql/erorr.log

错误原因
MySQL找不到PID文件导致无法启动,可能的原因是MySQL配置文件中指定了不存在的PID文件路径或者MySQL用户没有写入该路径的权限。
之前的操作是测试mysql开机是否能自启动,直接使用root用户执行reboot命令。所以应该是由于服务器强制关机导致pid文件丢失。
解决方案
-
确认pid文件位置(安装时没有在my.cnf文件中指定pid-file),通过系统命令查询

-
创建对应的目录并修改属主和权限(最好给 777权限)
[root@dba mysql-5.7]# mkdir -pv /var/run/mysqld mkdir: created directory ‘/var/run/mysqld’ [root@dba mysql-5.7]# [root@dba mysql-5.7]# chown -v mysql:dbgrp /var/run/mysqld changed ownership of ‘/var/run/mysqld’ from root:root to mysql:dbgrp [root@dba mysql-5.7]# [root@dba mysql-5.7]# chmod -Rv 777 /var/run/mysqld/ mode of ‘/var/run/mysqld/’ changed from 0755 (rwxr-xr-x) to 0777 (rwxrwxrwx) [root@dba mysql-5.7]#
- 创建一个pid文件并修改属主
[root@dba mysql-5.7]# [root@dba mysql-5.7]# touch /var/run/mysqld/mysqld.pid [root@dba mysql-5.7]# [root@dba mysql-5.7]# chown -v mysql:dbgrp /var/run/mysqld/mysqld.pid changed ownership of ‘/var/run/mysqld/mysqld.pid’ from root:root to mysql:dbgrp [root@dba mysql-5.7]#
- 启动数据库,启动成功
[root@dba mysql-5.7]# systemctl start mysqld.service [root@dba mysql-5.7]# [root@dba mysql-5.7]# systemctl status mysqld.service ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2023-04-15 11:02:18 CST; 5s ago Main PID: 5734 (mysqld) Tasks: 27 Memory: 133.8M CGroup: /system.slice/mysqld.service └─5734 /opt/mysql/mysql-5.7/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/opt/mysql/mysql-5.7 --datadir=/opt/mysql/mysql-5.7/data --plugin-dir=/opt/mysql/mysql-5.7/lib/plugin... Apr 15 11:02:18 dba systemd[1]: Started MySQL Server. [root@dba mysql-5.7]#
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




