Mac M1设备使用Homebrew启动MySQL失败问题求助
MySQL通过brew启动失败的排查与解决
问题描述
执行brew services start mysql时触发输入输出错误,使用sudo执行后提示服务已引导但仍启动失败,卸载重装Homebrew和MySQL后问题未解决。相关错误信息如下:
普通用户执行错误
brew services start mysql Bootstrap failed: 5: Input/output error Try re-running the command as root for richer errors Error: Failure while executing: `/bin/launchctl bootstrap gui/501 /Users/<user>/Library/LaunchAgents/homebrew.mxcl.mysql.plist` exited with 5
sudo执行错误
% sudo brew services start mysql Warning: Taking root:admin ownership of some mysql paths: /opt/homebrew/Cellar/mysql/8.0.30_1/bin /opt/homebrew/Cellar/mysql/8.0.30_1/bin/mysqld_safe /opt/homebrew/opt/mysql /opt/homebrew/opt/mysql/bin /opt/homebrew/var/homebrew/linked/mysql This will require manual removal of these paths using sudo rm on brew upgrade/reinstall/uninstall. Warning: mysql must be run as non-root to start at user login! /Library/LaunchDaemons/homebrew.mxcl.mysql.plist: service already bootstrapped Bootstrap failed: 37: Operation already in progress Error: Failure while executing: `/bin/launchctl bootstrap system /Library/LaunchDaemons/homebrew.mxcl.mysql.plist` exited with 37 <user>~ % brew services list Name status User File mysql stopped root ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
解决步骤
彻底清理MySQL的launchd服务
# 卸载用户级服务 launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist # 卸载系统级服务 sudo launchctl unload -w /Library/LaunchDaemons/homebrew.mxcl.mysql.plist # 删除残留的plist配置文件 rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist sudo rm /Library/LaunchDaemons/homebrew.mxcl.mysql.plist修复MySQL目录权限(sudo执行导致权限异常)
sudo chown -R $(whoami):admin /opt/homebrew/Cellar/mysql/8.0.30_1 sudo chown -R $(whoami):admin /opt/homebrew/opt/mysql sudo chown -R $(whoami):admin /opt/homebrew/var/homebrew/linked/mysql重置MySQL数据目录(若需保留原有数据,请先备份后跳过此步)
# 可选:备份现有数据 sudo cp -r /opt/homebrew/var/mysql /opt/homebrew/var/mysql_backup # 删除原数据目录 sudo rm -rf /opt/homebrew/var/mysql # 重新初始化MySQL mysqld --initialize --user=$(whoami) --datadir=/opt/homebrew/var/mysql重新启动MySQL服务
brew services restart mysql验证启动状态
# 查看brew服务状态 brew services list # 检查MySQL进程是否运行 ps aux | grep mysqld
内容的提问来源于stack exchange,提问作者Jeanpierr
相关产品推荐
相关产品推荐

