在执行执行 MySQL 安全初始化命令时
sudo mysql_secure_installation
出现如下命令
Enter password for user root: Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (61)
原因因分析
-
是 Connection refused,说明 MySQL 服务没有正常运行或没有监听
/tmp/mysql.sock。 -
可能原因包括:
- MySQL 服务没有启动或启动失败。
/tmp/mysql.sock文件不存在或权限异常。- sock 文件残留或损坏,导致新进程无法创建 socket。
决步骤
-
确认 MySQL 服务是否在运行
ps aux | grep mysqld如果没有 mysqld 进程,说明服务没启动。
-
查找 sock 文件实际位置
find / -name '*.sock' 2>/dev/null | grep mysql确认 sock 文件是否存在,以及路径是否为
/tmp/mysql.sock。 -
查看 MySQL 错误日志,定位启动失败原因
tail -n 40 /opt/homebrew/var/mysql/*.err -
清理残留的 sock 和 lock 文件
sudo rm -f /tmp/mysql.sock /private/tmp/mysql.sock /System/Volumes/Data/private/tmp/mysql.sock sudo rm -f /tmp/mysql.sock.lock /private/tmp/mysql.sock.lock /System/Volumes/Data/private/tmp/mysql.sock.lock -
修复 /tmp 目录权限
sudo chmod 1777 /tmp -
重启 MySQL 服务
brew services restart mysql -
再次执行安全初始化
sudo mysql_secure_installation
结果
-
问题解决,可以正常运行
mysql_secure_installation。
-
MySQL 服务正常启动,后续可通过命令行连接数据库。