玄幻问题
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/hostconfig
将 MYSQLCOM=-YES-
这一行删除
重启电脑,确保所有mysql相关的进程文件都被清除干净
重新安装 mysql
$ brew install mysql
一键轻松安装。默认情况下,root用户不需要密码即可登录
为mysql设置root密码:
$ mysql_secure_installation
按提示输入 root 密码,mysql8 对于密码强度有一定要求,过于简单的密码是通不过的
小结
如果经过以上操作还解决不了,只能祝福你了,大兄弟,努力吧...
网友评论