【数据库】MySQL启动报错:ERROR! The server quit without updating PID f ...

打印 上一主题 下一主题

主题 1870|帖子 1870|积分 5610

MySQL启动报错

/var/run 是Linux系统中用于存放运行时变量的目录,通常是系统启动时产生的临时文件,这些文件在系统运行期间必要被一连访问。/var/run 目录下的文件通常包含了系统进程的运行时信息,例如进程ID(PID)文件、锁文件和状态文件等。
系统重启后实行MySQL的启动提示报错

  1. [root@Master run]# service mysql start
  2. Starting MySQL.. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).
复制代码

问题分析:
起主要确认错误原因,我的mysql.pid设置的目录在查看/etc/my.cnf文件后
可以看到我设置的mysql.pid的路径是在/var/run目录下。

然后确认当前这个文件是否还存在
  1. find / -name mysqld.pid 2>/dev/null
复制代码

可以看到这个文件被删除后是无法查询到的
总结:由于缺少了pid文件导致无法正常启动mysql。
解决办法

我利用的是shell脚本,创建文件–>>赋权–>>实行脚本
其中:MYSQL_RUN_DIR路径修改成你系统中my.cnf里面设置的mysql.pid路径。
创建脚本:touch start_mysql.sh
  1. #!/bin/bash
  2. # 设置MySQL的运行目录和PID文件路径
  3. MYSQL_RUN_DIR="/var/run/mysqld"
  4. MYSQL_PID_FILE="$MYSQL_RUN_DIR/mysqld.pid"
  5. # 检查/var/run/mysqld目录是否存在,如果不存在则创建
  6. if [ ! -d "$MYSQL_RUN_DIR" ]; then
  7.     echo "目录 $MYSQL_RUN_DIR 不存在,正在创建..."
  8.     mkdir -p "$MYSQL_RUN_DIR"
  9.     if [ $? -ne 0 ]; then
  10.         echo "创建目录 $MYSQL_RUN_DIR 失败,退出脚本。"
  11.         exit 1
  12.     fi
  13. fi
  14. # 检查mysql.pid文件是否存在,如果不存在则创建
  15. if [ ! -f "$MYSQL_PID_FILE" ]; then
  16.     echo "文件 $MYSQL_PID_FILE 不存在,正在创建..."
  17.     touch "$MYSQL_PID_FILE"
  18.     if [ $? -ne 0 ]; then
  19.         echo "创建文件 $MYSQL_PID_FILE 失败,退出脚本。"
  20.         exit 1
  21.     fi
  22. fi
  23. # 为/var/run/mysqld目录和mysql.pid文件赋权
  24. echo "为 $MYSQL_RUN_DIR 和 $MYSQL_PID_FILE 赋权..."
  25. chown -R mysql:mysql "$MYSQL_RUN_DIR"
  26. chmod -R 750 "$MYSQL_RUN_DIR"
  27. # 启动MySQL服务
  28. echo "启动MySQL服务..."
  29. service mysql start
  30. # 检查MySQL服务是否启动成功
  31. if ps -ef | grep -v grep | grep -q "mysqld"; then
  32.     echo "MySQL服务启动成功!!!!!!!!!!!!!!!"
  33. else
  34.     echo "MySQL服务启动失败。"
  35.     exit 1
  36. fi
复制代码
赋权:chmod +x start_mysql.sh
实行:sudo ./start_mysql.sh
验证效果:(留意脚本中启动下令)

以上为临时解决方案
其他解决方案(太懒不想验证,以后再说):
  1. #修改pid-file路径(待验证)
  2. vim /etc/my.cnf
  3. 将pid-file=/var/run/mysqld/mysqld.pid
  4. 修改为 pid-file=/var/lib/mysqld/mysqld.pid
复制代码

  1. systemctl daemon-reload   //重构进程
  2. service mysqld start    //启动mysql
  3. chkconfig mysqld on    //加入随系统启动启动
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表