MacOS Monterey下MySQL无法启动及登录失败问题求助
MacBook Pro(Monterey)MySQL配置故障排查
核心问题
- 启动失败:系统偏好设置中点击「Start MySQL Server」后,服务器几秒后自动关闭
- 登录失败:偶尔重启重装后服务器能运行,但终端执行
mysql -u root -p或MySQL Workbench用安装密码登录时提示「Access Denied」
初始化错误日志
2022-08-17T13:58:03.594154Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.30-macos12-arm64/bin/mysqld (mysqld 8.0.30) initializing of server in progress as process 1279 2022-08-17T13:58:03.596412Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/mysql-8.0.30-macos12-arm64/data/ is case insensitive 2022-08-17T13:58:03.604502Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2022-08-17T13:58:03.721094Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2022-08-17T13:58:05.536330Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: W<dvfErrh0DC 2022-08-17T13:58:06.411738Z 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.30). 2022-08-17T13:58:07.176536Z 0 [System] [MY-010116] [Server] /usr/local/mysql-8.0.30-macos12-arm64/bin/mysqld (mysqld 8.0.30) starting as process 1284 2022-08-17T13:58:07.179562Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/mysql-8.0.30-macos12-arm64/data/ is case insensitive 2022-08-17T13:58:07.194523Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2022-08-17T13:58:07.269541Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2022-08-17T13:58:07.400561Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of socket: '/tmp/mysqlx.sock' failed, can't open lock file /tmp/mysqlx.sock.lock' 2022-08-17T13:58:07.498398Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2022-08-17T13:58:07.498450Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. 2022-08-17T13:58:07.499048Z 0 [ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: Address already in use 2022-08-17T13:58:07.499068Z 0 [ERROR] [MY-010257] [Server] Do you already have another mysqld server running on port: 3306 ? 2022-08-17T13:58:07.499087Z 0 [ERROR] [MY-010119] [Server] Aborting 2022-08-17T13:58:08.543591Z 0 [System] [MY-010910] [Server] /usr/local/mysql-8.0.30-macos12-arm64/bin/mysqld: Shutdown complete (mysqld 8.0.30) MySQL Community Server - GPL.
解决方案
问题1:服务器启动后自动关闭(端口占用)
从日志核心错误Bind on TCP/IP port: Address already in use可知,3306端口被其他进程占用,按以下步骤处理:
- 查找占用3306端口的进程:
lsof -i :3306 - 终止对应进程(替换
<PID>为查到的进程ID):kill -9 <PID> - 手动删除mysqlx锁文件及套接字文件:
sudo rm /tmp/mysqlx.sock.lock sudo rm /tmp/mysqlx.sock - 重新在系统偏好设置中启动MySQL服务。
问题2:登录提示Access Denied
MySQL 8.0初始化时会生成临时密码,需用临时密码登录后重置密码,而非安装时设置的密码:
- 确保MySQL服务正常运行,终端执行:
mysql -u root -p - 输入日志中的临时密码
W<dvfErrh0DC>登录(注意特殊符号输入正确) - 登录成功后重置root密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; FLUSH PRIVILEGES; - 退出后用新密码重新登录终端或MySQL Workbench。
彻底重置(若上述方法无效)
反复重装仍有问题时,执行彻底清理后重新安装:
- 停止MySQL服务(系统偏好设置中点击Stop)
- 卸载MySQL相关文件:
sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/MySQLCOM sudo rm -rf /Library/PreferencePanes/MySQL* rm -rf ~/Library/PreferencePanes/MySQL* sudo rm -rf /Library/Receipts/mysql* sudo rm -rf /Library/Receipts/MySQL* sudo rm -rf /var/db/receipts/com.mysql.* - 删除残留数据文件:
sudo rm -rf /usr/local/var/mysql - 重启电脑后重新下载对应版本的MySQL安装包安装,安装完成后查看初始化日志获取临时密码,按步骤重置密码。
内容的提问来源于stack exchange,提问作者anon
相关产品推荐
相关产品推荐

