Homebrew安装MySQL@5.7启动失败:错误37(操作已在进行)求助
解决Homebrew安装MySQL 5.7后的服务启动问题
环境信息
macOS v12.5.7 Homebrew 3.6.10 Homebrew/homebrew-core (git revision 1e446908eb9; last commit 2022-11-12) Homebrew/homebrew-cask (git revision d9344bd366; last commit 2022-11-12)
已通过Homebrew完成MySQL 5.7的干净安装:
$ mysql --version mysql Ver 14.14 Distrib 5.7.39, for osx10.17 (x86_64) using EditLine wrapper $ type -p mysql mysql is /usr/local/bin/mysql
因该版本为keg-only,已执行brew link mysql@5.7,但启动服务时出现以下问题:
- 执行
brew services start mysql提示:Error: Formula mysql is not installed. - 执行
brew services start mysql@5.7报错:Bootstrap failed: 5: Input/output error - sudo执行后报错:
Bootstrap failed: 37: Operation already in progress brew services list显示mysql@5.7状态为stopped
目标:成功运行mysql -uroot打开MySQL终端
解决步骤
1. 清理残留MySQL进程
先强制终止所有MySQL相关进程:
sudo pkill -9 mysqld
检查是否还有残留进程,如有则手动kill对应PID:
ps aux | grep mysqld
2. 重置服务注册
先卸载并停止现有服务:
brew services stop mysql@5.7 brew services uninstall mysql@5.7
重新注册并启动服务:
brew services start mysql@5.7
若仍报错,跳过brew services直接手动启动:
/usr/local/opt/mysql@5.7/bin/mysqld_safe --datadir=/usr/local/var/mysql
3. 修复数据目录权限
权限错误是IO报错的常见原因,执行以下命令修复:
sudo chown -R $(whoami) /usr/local/var/mysql sudo chmod -R 755 /usr/local/var/mysql
4. 重新初始化MySQL(数据目录损坏时)
如果以上步骤无效,大概率是数据目录损坏,需重新初始化:
brew services stop mysql@5.7 sudo rm -rf /usr/local/var/mysql mysqld --initialize --user=$(whoami) --datadir=/usr/local/var/mysql
初始化完成后,查看临时root密码:
cat /usr/local/var/mysql/$(hostname).err | grep "temporary password"
用临时密码登录并修改密码:
mysql -uroot -p # 输入临时密码后执行 ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
5. 验证环境变量
确认MySQL路径已加入环境变量:
echo $PATH | grep /usr/local/opt/mysql@5.7/bin
若无输出,手动添加到~/.zshrc(或~/.bash_profile):
echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
内容的提问来源于stack exchange,提问作者Richie Thomas
相关产品推荐
相关产品推荐

