mac 解决 mysql 启动报错

玄幻问题

mac 中用 brew 安装 mysql,理想中是这样的:执行一行命令,就可以愉快地使用 mysql

现实却是这样的:当系统曾经安装过 mysql, 用 brew 卸载后再安装新版 mysql 时,可能就会遇到以下的莫名其妙的坑

启动服务

$ brew services start mysql

连接 mysql, 报错如下:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

改用以下命令启动:

$ mysql.server start
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/long-MacBook-Pro.local.pid).

进入 /usr/local/var/mysql 目录,查看报错,依然不知所云...

百度、谷歌无数,各种方案尝试,看遍无数吐槽,最后解决了,但依然不知其所以然,只能说:这是一个玄学

如果你也遇到此问题,不妨尝试用以下方式:

彻底删除 mysql

kill所有mysql进程

ps -ax | grep mysql 找出相关进程并kill

brew删除mysql

$ brew uninstall -f mysql
$ brew cleanup

删除相关文件

# 将 Cellar 目录下相关的 mysql 目录都删除
$ rm -rf /usr/local/Cellar/mysql
$ sudo rm /usr/local/mysql
$ sudo rm -rf /usr/local/var/mysql
$ sudo rm -rf /usr/local/mysql*
$ sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
$ sudo rm -rf /Library/StartupItems/MySQLCOM
$ sudo rm -rf /Library/PreferencePanes/My*

解除上版本的mysql自动登录

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

删除上个版本的配置

$ rm -rf ~/Library/PreferencePanes/My*
$ sudo rm -rf /Library/Receipts/mysql*
$ sudo rm -rf /Library/Receipts/MySQL*
$ sudo rm -rf /private/var/db/receipts/*mysql*
$ sudo rm -f /etc/my.cnf

如果存在此文件 /etc/hostconfigMYSQLCOM=-YES- 这一行删除

重启电脑,确保所有mysql相关的进程文件都被清除干净

重新安装 mysql

$ brew install mysql

一键轻松安装。默认情况下,root用户不需要密码即可登录

为mysql设置root密码:

$ mysql_secure_installation

按提示输入 root 密码,mysql8 对于密码强度有一定要求,过于简单的密码是通不过的

小结

如果经过以上操作还解决不了,只能祝福你了,大兄弟,努力吧...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。