问题描述
mySql 启动时,报错ERROR! The server quit without updating PID file (/usr/local/var/mysql/bogon.pid)
解决方法
sudo chmod -R 777 /usr/local/var/mysql/
sudo chmod -R 777 /tmp/
背景
电脑重启后发现程序无法连接本地的MySql数据库,PS后发现程序没有运行
ps -ef|grep mysql
通过brew services restart mysql
重启失败。
找到mySql程序手动启动,报错ERROR! The server quit without updating PID file (/usr/local/var/mysql/bogon.pid)
。
sudo /usr/local/bin/mysql.server start
ERROR!
The server quit without updating PID file (/usr/local/var/mysql/bogon.pid)
这里发现个有趣的地方,为什么是bogon.pid
。电脑的主机名为什么变成了bogon
这里推荐一篇文章。到这里猜测是由于主机名变更导致mysql启动失败。
进一步查看错误日志:
less bogon.err
发现为[ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
网上搜索解决方案:
sudo /usr/local/bin/mysql.server start --user=root
确实可以启动成功,但是下次启动还要加这个参数,太麻烦了。
root用户能启动,但普通用户无法启动,所以想到了是权限问题,将/usr/local/var/mysql
(数据库的数据与日志目录)权限改为777.mysql 还用到了/tmp/
目录文件,顺便将此目录也改为全部权限。
sudo chmod -R 777 /usr/local/var/mysql/
sudo chmod -R 777 /tmp/
现在启动正常了。
总结
mac电脑的主机名变更,导致mySql启动时读取的错误文件变了(bogon.err)。进而引发了权限问题,将权限赋予后,ok。