前言

接上一篇文章  mysql 启动过程中常见的相关报错信息 

在 mysql 中文我们在 “service mysql start”, “service mysql stop” 经常会碰到 mysql.pid 相关的错误信息

比如 “The server quit without updating PID file”

我们这里来看一下 mysql 中 mysql.pid 文件的创建 和 清理的时机

 

 

mysql.pid 的文件的创建时机

这个是在 mysqld 的主程序中 如下 

在网络初始化之后

53 mysql pid 文件的创建_stop

 

其具体的实现也很简单, 就是 open, write, close 等等 

pid 的数据来自于 getpid 系统调用

53 mysql pid 文件的创建_pid_02

 

创建 pid 文件的时候, 日志上下文如下  

53 mysql pid 文件的创建_pid_03

 

创建了 pid 文件之后的日志信息如下 

53 mysql pid 文件的创建_start_04

 

 

mysql.pid 的文件的清理时机

在 mysqld 的主程序的末尾 

通常来说, 我们使用 “service mysql stop” 或者 “kill $pid” 会执行该清理 

53 mysql pid 文件的创建_启动过程_05

 

删除该文件也很简单, remove 函数删除给定的文件 

53 mysql pid 文件的创建_启动过程_06

 

删除 pid 文件的时候, 日志上下文如下  

53 mysql pid 文件的创建_mysql_07

 

删除了 pid 文件之后的日志信息如下, 基本上是在 mysql 生命周期的最后面了

53 mysql pid 文件的创建_启动过程_08

 

 

完