今天在做mysql sniff测试的时候,中间重启MySQL实例的过程中,出现了"The server quit without updating PID file"这个经典的错误。
因为把mysql sniff的日志文件放在了mysql实例的目录中,因此删除mysql sniff日志的时候无意中删除了mysql的errorlog文件。
所以一开始怀疑这里出现的错误是mysql sniff进程在MySQL实例的datadir下写数据导致的,各种尝试重现都无法重现。
最后仔细回忆了一下错误最开始的一些操作,好似乎跟mysql的errorlog有关,尝试后发现是删除MySQL的errorlog之后重启,也可以造成上述错误

重现方式如下:
1,对于正常运行的MySQL实例,直接删除MySQL配置的errorlog文件
2,重启MySQL实例,发现:The server quit without updating PID FILE

解决办法1:
step 1,手动生成mysql errorlog文件,errorlog文件名称需要与配置文件中的配置名称保持不一致
step 2,修改MySQL相关文件的权限,chown -R mysql:mysql

解决办法2:
1,简单粗暴,直接修改MySQL配置文件中的用户,以root用户启动
2,待MySQL实例启动后,因为部分文件属主是root,比如每次重启都会重新生成的ibtmp1文件,修改MySQL相关文件的权限,chown -R mysql:mysql
3,修改配置文件中的user为mysql,重启实例

最后,为什么删除mysql的errorlog可以导致mysql重启的时候出现"The server quit without updating PID file"?
查阅了很多资料,了解了一下MySQL的启动过程,个人推测大概如下
1,mysql实例启动的过程中需要往errorlog中写入启动信息,如果errorlog不存在,则启动失败
2,以root用户启动的时候,root用户的权限更高,应该可以创建errorlog
3,不管怎么解决这个错误,最后一定要修改MySQL basedir的属主。

参考:

https://www.cnblogs.com/ivictor/p/6846017.htmlhttps://blog.csdn.net/wzl505/article/details/53322845https://codar.club/blogs/5c2d75cca8b3b.html(太奇葩了,应该是翻译软件翻译上面第一个的链接的内容的,看到这句话震惊了:Many children's shoes encountered this mistake when they started mysql.)

另:

MySQL 5.7版本下,mysql sniff死活抓不到当前实例请求的包数据,经过各种重启,各种折腾还是不行,最后发现mysql sniff已经对5.7不支持了
开源是把双刃剑,别人的东西,没问的时候,用起来爽歪歪,有了问题,又没有源码修改能力,就只能干瞪眼了。
https://github.com/Qihoo360/mysql-sniffer/issues/32

MySQL Error Log 文件丢失导致The server quit without updating PID file启动失败的场景的更多相关文章

  1. 深度解析MySQL启动时报“The server quit without updating PID file”错误的原因

    很多童鞋在启动mysql的时候,碰到过这个错误, 首先,澄清一点,出现这个错误的前提是:通过服务脚本来启动mysql.通过mysqld_safe或mysqld启动mysql实例并不会报这个错误. 那么 ...

  2. mysqld_safe error: log-error set to '/data/log/mysqld.log', however file don't exists. Create writable for user 'mysql'.The server quit without updating PID file (/data/mysql/mysqld.pid)

    [oot@cent65 bin]# service mysqld startStarting MySQL.2019-10-28T15:56:47.786960Z mysqld_safe error: ...

  3. Starting MySQL... ERROR! The server quit without updating PID file 问题解决

    今天遇到一个mysql起不来,不知为啥挂了,启动是下面的报错 Starting MySQL... ERROR! The server quit without updating PID file 后来 ...

  4. MySQL.. ERROR! The server quit without updating PID file问题解决

    不小心将服务器OS给重启了,再启动数据库的时候,出现了很奇怪的问题 [root@dev run]# service mysql restart ERROR! MySQL server PID file ...

  5. Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/var/AYXXXXXXXXXXX.pid). 错误解决方法

    /etc/init.d/mysql start无法启动MySQL错误信息如下: ERROR! MySQL server PID file could not be found! Starting My ...

  6. Starting MySQL.. ERROR! The server quit without updating PID file

    版权声明:本文为博主原创文章,未经博主允许不得转载. 注意:本文出自 “阿飞”的博客 ,如果要转载本文章,请与作者联系! 并注明来源: http://blog.csdn.net/faye0412/ar ...

  7. Starting MySQL... ERROR! The server quit without updating PID file (/home/mysql-5.6.43/data/localhost.localdomain.pid).

    启动MySQL出现如下错误 May :: localhost mysqld: Starting MySQL... ERROR! The server quit without updating PID ...

  8. [转]MySQL: Starting MySQL….. ERROR! The server quit without updating PID file

    转自: http://icesquare.com/wordpress/mysql-starting-mysql-error-the-server-quit-without-updating-pid-f ...

  9. 启动mysql报错 -- ERROR! The server quit without updating PID file

    开发说某个测试环境的mysql,无法重启了,报以下错误提示: # service mysqld restart Shutting down MySQL.. SUCCESS! Starting MySQ ...

随机推荐

  1. Undefined symbols for architecture x86_64"_OBJC_CLASS_$_QQApiInterface 怎么搞

    今天上午报了一个这样的错误 解决办法 如此如此 ~~ 然后编译 看看报的什么错误 还是不行的话就重新导入三方库 添加依赖库 结果build success

  2. git 使用详解(3)—— 最基本命令 + .gitignore 文件

    Git 基础 本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停止跟踪某些文件:暂存或提交某 ...

  3. Servlet和Tomcat底层源码分析

    Servlet 源码分析   Servlet 结构图 Servlet 和 ServletConfig 都是顶层接口,而 GenericServlet 实现了这两个顶层接口,然后HttpServlet ...

  4. MongoDB第三天(正则,管道,聚合,字符串,算术,日期,java连接MongoDB)

    部分正则表达式: i:忽略大小写 m:多行查找 x:设置 x 选项后,正则表达式中的非转义的空白字符将被忽略.   s:允许点字符(即.)匹配包括换行符在内的所有字符. w:匹配包括下划线的任何单词字 ...

  5. [TimLinux] myblog 页面Axure设计

    1. 导航 2. 首页主体 3. 侧边栏 4. 页尾 5. 使用工具 Axure RP 8.0.0.3312 Pro版本.

  6. PlantUML Viewer Chrome 插件 画时序图

    PlantUML通过简单直观的语言来定义示意图 使用 Chrome+ PlantUML Viewer的插件画图 1,打开chrome网上应用店 2,搜索plantuml viewer 并添加 3,扩展 ...

  7. zabbix系列-Grafana4.6.3+Zabbix 的安装部署

    zabbix系列(五) Grafana4.6.3+Zabbix 的安装部署 伟创享 2019-07-31 11:27:18 使用了一段时间Grafana,感觉还挺好用的.部分效果图如下: ​ zabb ...

  8. Orleans的生产环境部署

    这一章非常简单 只要照着官方文档做就行了 文档地址 打好NUGET包后 Sql脚本是在项目下的OrleansAdoNetContent

  9. 如何关注flink的maillist,参与贡献

    对一些开源的中间件 大家可能都很热爱,如何参与其中呢,很多人却感觉是一件很遥远的事情, 最近一时兴起,迈出这一步,我关注一下也没啥问题 以下对flink的关注的一些步骤,(详细的可以参考官网步骤,ht ...

  10. Django序列化时间报错

    一.前言 当利用models模块从数据库获取数据时,当获的取数据序列化时,如果获取的数据中有关于时间类型的字段,则会报错,错误如下: TypeError: datetime.datetime(2018 ...