执行brew services start mysql后MySQL服务仍停止的问题求助
问题场景
执行以下操作后:
brew services restart mysql
输出显示操作成功:
==> Successfully stopped `mysql` (label: homebrew.mxcl.mysql) ==> Successfully started `mysql` (label: homebrew.mxcl.mysql)
但执行brew services list却显示MySQL处于停止状态:
Name Status User File mysql stopped me ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
MariaDB也出现完全相同的问题。请问/usr/local/var/mysql目录中的内容是否会对此产生影响?
解答
是的,/usr/local/var/mysql目录的内容确实会导致这类问题,常见原因及解决方法如下:
权限不匹配
MySQL/MariaDB默认以_mysql用户身份运行,如果/usr/local/var/mysql目录或其中文件的所有者、权限不正确,进程会因无法读写数据而启动后立刻崩溃。
检查权限:ls -ld /usr/local/var/mysql ls -l /usr/local/var/mysql修复权限:
sudo chown -R _mysql:_mysql /usr/local/var/mysql sudo chmod -R 755 /usr/local/var/mysql核心数据/日志文件损坏
目录中的ib_logfile0、ib_logfile1、ibdata1等InnoDB核心文件损坏,会导致服务启动失败。操作前务必备份数据,然后尝试移除损坏的日志文件:mv /usr/local/var/mysql/ib_logfile0 /usr/local/var/mysql/ib_logfile0.bak mv /usr/local/var/mysql/ib_logfile1 /usr/local/var/mysql/ib_logfile1.bak之后重新启动服务。
配置文件指向错误
若自定义的my.cnf(通常在/usr/local/etc/my.cnf或~/.my.cnf)中datadir参数未正确指向/usr/local/var/mysql,也会导致服务启动异常,检查并修正该参数即可。
排查小技巧
直接查看MySQL/MariaDB的错误日志,能快速定位具体故障原因:
tail -f /usr/local/var/mysql/$(hostname).err
内容的提问来源于stack exchange,提问作者Ildar Meyker
相关产品推荐
相关产品推荐

