首页 > 数据库 >[转]启动mysql服务时一直提示ERROR The server quit without updating PID file

[转]启动mysql服务时一直提示ERROR The server quit without updating PID file

时间:2022-09-20 16:26:23浏览次数:101  
标签:quit PID pid server mysqld file mysql

原文地址:启动mysql服务时一直提示ERROR The server quit without updating PID file_zqin0的博客-CSDN博客

centos7中使用二进制文件部署的mysql

启动mysql 服务时一直提示

ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.pid)

不管是执行 systemctl start mysqld

 

还是执行support-file目录下的mysql.service start

 

 

 

经过近1天的研究终于找到了问题所在!!!

注意:support-files目录下的mysql.server 执行的是 mysqld_safe 而不是 mysqld

使用vim查看mysql.server的内容

找到第281行 可以看出,执行参数start时,运行的是$bindir目录下的/mysqld_safe 程序

 

 

 

由于我是所有操作都是用root 用户执行的, (这是个坑)

而用root用户执行mysqld 跟mysqld_safe 不加--user=root参数 指定用户时会报错的

 

 

为了让mysqld_safe能过执行,需要对mysql.service文件进行一点点修改

还是在281行, 在执行mysqld_safe 时 我加入了 --user=root 参数

 

 

此时再执行 mysql.server start 终于看到了久违的SUCCESS!

 

 

再看下面的内容

 

 

此时localhost.pid 文件中保存的就是mysqld的pid

再查看 ps进程

 

 

可以看到存在2个进程mysqld_safe 与 mysqld

 

归根结底:出现该错误的原因就是由于我在root用户下部署导致的!!!

如果不想修改mysql.server 文件的话建议还用新建mysql 用户运行

顺便说一句:修改完mysql.server 文件后, 成功运行mysql 服务用的都是系统自带的默认参数, 因为我压根就没创建 my.cnf 文件!

启动报错跟my.cnf 文件中的配置信息也无关!

 

 

注意:pid-file文件是在系统中有mysql服务在运行时才会生成,mysql服务没有运行的情况下找不到PID文件也是正常的!!!

补充说明:

那么为什么会一直提示 ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.pid) 这个错误的

通过分析mysql.server 文件

下面是部分shell代码

 

再看wait_for_pid函数代码

 

通过注释可以看出:wait_for_pid 需要3个参数

第一个参数verb 可选值为 create | removed 创建或删除 pid-file

第二个参数pid 为mysqld 运行时的PID

第三个参数pid_file_path 为 pid-file 文件的路径

注意看184 行到199行的代码

通过注释可以看出,如果mysqld 服务没有运行的话, pid-file 文件 将不会被更新

196行调用了log_failure_msg 输出了我们熟悉的错误信息 The server quit without updating PID file (/usr/local/mysql/data/localhost.pid)

由于没有运行mysqld服务, 没有对应的PID值, 也就无法创建对应的pid文件,

因此就出现了那句 我们熟悉的 The server quit without updating PID file (/usr/local/mysql/data/localhost.pid) 错误信息

这就是为什么每次都出现那句PID file 报错信息
————————————————
版权声明:本文为CSDN博主「zqin0」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zqin0/article/details/106444580/

标签:quit,PID,pid,server,mysqld,file,mysql
From: https://www.cnblogs.com/dirgo/p/16711435.html

相关文章

  • mysql 循环实例
    dropprocedureifexistsinsertMethod;createprocedureinsertMethod(countint)begin declareiintdefault1; loop_name:loop--循环开始 ifi>count......
  • MySQL中update修改数据与原数据相同会再次执行吗
    背景本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗?环境MySQL5.7.25Centos7.4binlog_format为ROW参数root@......
  • MySQL实现备份(3)之xtrabackup 备份工具
    xtrabackup工具:是percona公司开发的一个用于对MySQL进行备份的工具。相对于mysqldump,xtrabackup支持增量备份、差异备份等。使用手册;https://www.percona.com/doc/percon......
  • MySQL架构原理之存储引擎InnoDB存储结构
    从MySQL5.5版本开始默认使用InnoDB作为引擎,它擅长处理事务,具有自动奔溃恢复的特性,在日常开发中使用非常广泛。其具体架构,参考官方提供的相关图示如下:从......
  • MySQL维护之日志文件
    MySQL数据库中常见的日志文件有错误日志(ErrorLog)、二进制日志(BinaryLog)、慢查询日志(SlowQueryLog)、全查询日志(GeneralQueryLog)、中继日志(RelayLog)和事务日志。......
  • Docker安装部署Mysql8(以作数据持久化)
    1.创建容器并进行持久化处理#拉取镜像dockerpullmysql:8.0.20#启动镜像,用于拷贝配置文件到宿主机dockerrun-p3306:3306--namemysql-eMYSQL_ROOT_PASSWORD=12......
  • 【MySQL】MySQL导出用户权限信息
    $vimMyDatabaseUSers.sql#!/bin/bashGRANT_CMDS=/tmp/ShowGrantsToExport.sqlGRANT_FILE=MyDatabaseUSers.sqlMYSQL_USER=rootMYSQL_PASS=rootMYSQL_CONN="-u${MY......
  • DockerFile
    Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。具体解释:镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以......
  • mysql创建分区表(转载)
    一、   mysql分区简介数据库分区数据库分区是一种物理数据库设计技术。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以......
  • Mysql系列---【使用慢日志查询分析sql语句】
    1.查看慢日志是否开启mysql>showvariableslike'slow_query%';+---------------------------+----------------------------------+|Variable_name|......