如何在macOS上使用brew安装的MySQL 5.6?

14

通过以下命令安装MySQL:

$ brew install mysql56
$ brew services start mysql@5.6

现在我无法访问它:

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

想要卸载它并尝试了以下方法:

brew remove mysql
brew cleanup

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/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*

(Restart computer)

现在开始工作。

当我重新安装并运行时:

brew intall mysql56
brew services start mysql@5.6

它显示:
Service `mysql@5.6` already started, use `brew services restart mysql@5.6` to restart.

但我在进程列表中找不到它。

1个回答

40

到Stack Overflow去看看。

我会回答这个问题,但请务必检查是否已经有相关问题

试试这个

brew uninstall --force mysql

或者从Google搜索结果,第一个来自CoderWall

查找所有正在运行的实例

ps -ax | grep mysql | grep -v grep

# OR for only the running `PID`

ps -ef | grep mysql | grep -v grep | awk '{print $2}'

# OR this If you have this on your machine, I recommend using 

pgrep -f mysql

如果运行杀进程

kill 24024824082408   # change this number to what was returned in the grep 

保存您的数据库数据

此操作将把您的 MySQL 数据文件夹保存到桌面上一个名为 mysqldata 的文件夹中。

# I backup my data from mysql to my desktop
mkdir ~/Desktop/mysqldata/

# data
cp -r /usr/local/mysql/data ~/Desktop/mysqldata

保存您的MySQL Workbench数据以进行迁移。

# MySQL workbench active sessions including the unsaved query windows
cp -r ~/Library/Application\ Support/MySQL/Workbench/sql_* ~/Desktop/mysqldata

# data this is a log containing queries that were logged at some point, more of a `just in case`
cp ~/Library/Application\ Support/MySQL/Workbench/log/sql_actions_unconnected.log ~/Desktop/mysqldata/sql_actions_unconnected.sql

# data of user snippets as people forget about this.
cp /Users/`id -un`/Library/Application\ Support/MySQL/Workbench/snippets/User\ Snippets.txt ~/Desktop/mysqldata/UserSnippets.txt

清理与移除

brew remove mysql
brew cleanup
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*
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*

如果适用,则编辑vi /etc/hostconfig并删除MYSQLCOM=-YES-这一行。

如果您想确保任何MySQL进程都已被终止,请重新启动计算机。尝试运行mysql,它不应该工作。

不要担心某些rm失败,它们只是不存在的。

希望这能帮到你,祝你有美好的一天!


谢谢你的回答。但是对于mysql 56 - mysql@5.6也不起作用。我无法使用此命令找到mysql:sudo launchctl list | grep -i mysql。但是仍然会显示此消息:Service mysql@5.6already started, usebrew services restart mysql@5.6 to restart. - zseikyocho
没问题。你是不是使用 https://dev.mysql.com/downloads/mysql/ 安装过一次?我问这个的原因是,我也遇到过这个问题,但是通过删除 brewmysql 并直接从 .dmg 文件中安装解决了它。在卸载后,你是否重新启动了电脑并检查它是否仍在运行?如果是的话,那么你可能有一个异常情况。 - JayRizzo
2
非常感谢。我执行了 brew remove mysql56brew install mysql56。现在它可以正常工作了!请确保将此路径替换为 /usr/local/opt/mysql@5.6 - zseikyocho
1
运行 brew remove mysql56 后,路径 /usr/local/opt/ 不应该包含 mysql@5.6 文件夹。当再次运行 brew install mysql56 时,它将重新生成。 - zseikyocho
1
谢谢!运行的实例是罪魁祸首。即使我们已经使用brew命令卸载并删除了文件夹,但如果我们使用docker并尝试连接到容器,则会失败。 - Erick Nyoto
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接