brew 启动旧版本的 mysql 服务,但如何连接到它?

Big*_*man 4 mysql macos homebrew

所以我mysql通过安装brew,并在我的Mac OS上安装了2个版本 -

mysql 5.7

mysql 8.0

brew link输入的是 5.7,所以如果我输入mysql --version,它就会给我distro 5.7.26.

问题就在这里。现在如果我输入brew services list,有两个mysql stopped服务mysql@5.7 stopped

在此输入图像描述

如果我brew services start mysql,那么我sudo mysql在终端中,我可以连接到mysql服务器。但它显示服务器实例是8.0。好吧,我想与命令行不同,brew services start XXX不会选择链接的XXX

如果我brew services start mysql@5.7、我sudo mysql,就无法连接成功。它给了我错误,ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)我认为这意味着 mysql 客户端找不到活动的打开实例。

如何连接到旧版本的本地mysql实例?

Big*_*man 6

好吧,经过两天的努力,我自己解决了。

解决方案是,如果我想运行本地mysql 5.7实例,我需要完全删除任何系统mysql 8.0。和mysql 5.7文件夹,以及从中删除公式brew

最后只能重装了mysql 5.7

首先卸载所有版本。

brew uninstall mysql
brew uninstall mysql@5.7
Run Code Online (Sandbox Code Playgroud)

然后清除剩余的碎屑。

对于英特尔:

rm -rf /usr/local/var/mysql
rm /usr/local/etc/my.cnf
Run Code Online (Sandbox Code Playgroud)

Apple Silicon 的替代方案:

rm -rf /opt/homebrew/var/mysql/
rm /opt/homebrew/etc/my.cnf
Run Code Online (Sandbox Code Playgroud)

然后重新安装、链接并启动服务。

brew install mysql@5.7
brew link --force mysql@5.7
brew services start mysql@5.7
Run Code Online (Sandbox Code Playgroud)

此外,在 Apple Silicon 上,如果您收到如下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Run Code Online (Sandbox Code Playgroud)

当连接到mysql -uroot刚刚启动的服务器时,尝试使用MySQL的打包服务器启动工具:

brew services stop mysql@5.7
mysql.server start
mysql -uroot
Run Code Online (Sandbox Code Playgroud)

https://medium.com/@at0dd/install-mysql-5-7-on-mac-os-mojave-cd07ec936034中所示

  • 只是想说谢谢您包含您自己的答案!节省了我一些时间,感谢解决方案 (3认同)