【数据库】MySQL启动报错:ERROR! The server quit without updating PID file
MySQL启动报错/var/run 是Linux系统中用于存放运行时变量的目录,通常是系统启动时产生的临时文件,这些文件在系统运行期间必要被一连访问。/var/run 目录下的文件通常包含了系统进程的运行时信息,例如进程ID(PID)文件、锁文件和状态文件等。
系统重启后实行MySQL的启动提示报错
# service mysql start
Starting MySQL.. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
https://i-blog.csdnimg.cn/direct/3014a2d3e7234e6385aed8d20ae3d826.png
问题分析:
起主要确认错误原因,我的mysql.pid设置的目录在查看/etc/my.cnf文件后
可以看到我设置的mysql.pid的路径是在/var/run目录下。
https://i-blog.csdnimg.cn/direct/4b9e56a8479b4cf8b5a1ae8e40c37064.png
然后确认当前这个文件是否还存在
find / -name mysqld.pid 2>/dev/null
https://i-blog.csdnimg.cn/direct/037de5a870a74cffba6cba38b52a7241.png
可以看到这个文件被删除后是无法查询到的
总结:由于缺少了pid文件导致无法正常启动mysql。
解决办法
我利用的是shell脚本,创建文件–>>赋权–>>实行脚本
其中:MYSQL_RUN_DIR路径修改成你系统中my.cnf里面设置的mysql.pid路径。
创建脚本:touch start_mysql.sh
#!/bin/bash
# 设置MySQL的运行目录和PID文件路径
MYSQL_RUN_DIR="/var/run/mysqld"
MYSQL_PID_FILE="$MYSQL_RUN_DIR/mysqld.pid"
# 检查/var/run/mysqld目录是否存在,如果不存在则创建
if [ ! -d "$MYSQL_RUN_DIR" ]; then
echo "目录 $MYSQL_RUN_DIR 不存在,正在创建..."
mkdir -p "$MYSQL_RUN_DIR"
if [ $? -ne 0 ]; then
echo "创建目录 $MYSQL_RUN_DIR 失败,退出脚本。"
exit 1
fi
fi
# 检查mysql.pid文件是否存在,如果不存在则创建
if [ ! -f "$MYSQL_PID_FILE" ]; then
echo "文件 $MYSQL_PID_FILE 不存在,正在创建..."
touch "$MYSQL_PID_FILE"
if [ $? -ne 0 ]; then
echo "创建文件 $MYSQL_PID_FILE 失败,退出脚本。"
exit 1
fi
fi
# 为/var/run/mysqld目录和mysql.pid文件赋权
echo "为 $MYSQL_RUN_DIR 和 $MYSQL_PID_FILE 赋权..."
chown -R mysql:mysql "$MYSQL_RUN_DIR"
chmod -R 750 "$MYSQL_RUN_DIR"
# 启动MySQL服务
echo "启动MySQL服务..."
service mysql start
# 检查MySQL服务是否启动成功
if ps -ef | grep -v grep | grep -q "mysqld"; then
echo "MySQL服务启动成功!!!!!!!!!!!!!!!"
else
echo "MySQL服务启动失败。"
exit 1
fi
赋权:chmod +x start_mysql.sh
实行:sudo ./start_mysql.sh
验证效果:(留意脚本中启动下令)
https://i-blog.csdnimg.cn/direct/8774d470fcfc4b639f4e505a178e2e56.png
以上为临时解决方案
其他解决方案(太懒不想验证,以后再说):
#修改pid-file路径(待验证)
vim /etc/my.cnf
将pid-file=/var/run/mysqld/mysqld.pid
修改为 pid-file=/var/lib/mysqld/mysqld.pid
https://i-blog.csdnimg.cn/direct/4239e70392b14b6cb46481b627a731a7.png
systemctl daemon-reload //重构进程
service mysqld start //启动mysql
chkconfig mysqld on //加入随系统启动启动
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]