目录
一、原理
在Mac中启动Mysql时,会在后台创建一个进程,并将进程号(PID)保存在一个文件中。如果Mysql进程意外退出,该文件中的PID将不再有效,此时再次尝试启动Mysql时,会报错"The server quit without updating PID file".
这个错误通常是由于Mysql进程已经启动但意外退出,造成PID文件中的进程号与实际进程号不一致,导致启动失败。解决办法可以通过以下两种方法来实现:
1.手动删除PID文件,然后重新启动Mysql服务:可以进入Mysql的PID文件所在目录(默认为/var/run/mysqld/mysqld.pid),删除对应的文件,然后再次尝试启动Mysql服务即可。
2.查看Mysql日志文件,找出错误原因并解决:Mysql会将日志文件保存在默认的数据目录(默认为/var/lib/mysql/),可以打开日志文件查看错误信息并解决对应问题,然后再次尝试启动Mysql服务。
二、系统配置信息:
系统 macOS bigSur 11.6
mysql 8.0.26
三、启动MySql服务:
sudo /usr/local/mysql/support-files/mysql.server start
错误信息如下:
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/jinjideleishen.local.pid).
解决命令
mac 默认用户是_mysql, linux下mysql的默认用户是mysql
利用 chown 将指定文件的拥有者改为指定的用户或组
-R : 处理指定目录以及其子目录下的所有文件
sudo chown -R _mysql:_mysql /usr/local/mysql/
重新启动成功:
sudo /usr/local/mysql/support-files/mysql.server restart
ERROR! MySQL server PID file could not be found!
Starting MySQL
.................................................... SUCCESS!
四、停止MySql服务
sudo /usr/local/mysql/support-files/mysql.server stop
五、重启MySql服务
sudo /usr/local/mysql/support-files/mysql.server restart
六、原因分析
出现这个错误是因为 MySQL 无法更新 PID 文件。PID 文件包含进程 ID(PID),它是一个唯一的数字标识符,用于识别运行的进程。PID 文件通常保存在 MySQL 数据目录中。
可能的原因是 MySQL 进程没有正常启动或已经运行了。这可能是由于配置问题、权限问题或系统故障等原因引起的。
以下是一些可能的解决方案:
-
检查配置文件:请确保 MySQL 配置文件中设置了正确的 PID 文件路径。在 macOS 上,通常默认为 /usr/local/mysql/data/hostname.pid。
-
检查 MySQL 数据目录权限:请确保 MySQL 数据目录(通常是 /usr/local/mysql/data)具有正确的权限。您可以使用以下命令检查权限:
sudo ls -la /usr/local/mysql/data
。如果需要,可以使用以下命令更改权限:sudo chown -R _mysql:_mysql /usr/local/mysql/data
。 -
检查 MySQL 进程状态:使用以下命令检查 MySQL 进程状态:
ps aux | grep mysql
。如果 MySQL 已经在运行,您可以尝试通过以下命令重新启动 MySQL:sudo /usr/local/mysql/support-files/mysql.server restart
。 -
检查系统日志:如果 MySQL 无法启动并写入 PID 文件,它通常会在系统日志中记录错误消息。您可以使用以下命令查看系统日志:
sudo tail -f /var/log/system.log
。
如果上述方法无法解决问题,请尝试重新安装 MySQL。
七、规避
要规避MAC中启动MySQL报错"The server quit without updating PID",可以按照以下步骤操作:
- 打开终端(Terminal)应用程序。
- 输入以下命令:sudo mkdir /usr/local/mysql/data。
- 输入密码,按Enter键,创建MySQL数据目录。
- 输入以下命令:sudo chown -R _mysql /usr/local/mysql。
- 输入密码,按Enter键,将MySQL文件夹所有者更改为MySQL用户。
- 再次输入以下命令:sudo /usr/local/mysql/support-files/mysql.server start。
- 按Enter键,启动MySQL服务器。
如果您仍然遇到问题,请尝试重新安装MySQL,并确保安装过程中没有任何错误或警告。