在 macOS 上通过 brew 安装时如何卸载 MySQL 5.6?

zse*_*cho 5 mysql homebrew process mysql-5.6

通过发出以下命令安装 MySQL:

$ brew install mysql56
$ brew services start mysql@5.6
Run Code Online (Sandbox Code Playgroud)

现在我无法访问它:

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

想卸载它并尝试了以下操作:

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)
Run Code Online (Sandbox Code Playgroud)

现在工作。

当我再次安装并运行时:

brew intall mysql56
brew services start mysql@5.6
Run Code Online (Sandbox Code Playgroud)

表明:

Service `mysql@5.6` already started, use `brew services restart mysql@5.6` to restart.
Run Code Online (Sandbox Code Playgroud)

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

Jay*_*zzo 16

到堆栈溢出。

我会回答这个问题,但请务必检查现有问题,因为这已经被问到了。

尝试这个

brew uninstall --force mysql
Run Code Online (Sandbox Code Playgroud)

或者来自Google First 结果来自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
Run Code Online (Sandbox Code Playgroud)

如果运行kill进程

kill 24024824082408   # change this number to what was returned in the grep 
Run Code Online (Sandbox Code Playgroud)

保存您的数据库数据

这会将您的 MySQL 数据文件夹保存到您桌面的文件夹中mysqldata

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

# data
cp -r /usr/local/mysql/data ~/Desktop/mysqldata
Run Code Online (Sandbox Code Playgroud)

保存您的 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
Run Code Online (Sandbox Code Playgroud)

移除和清理

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*
Run Code Online (Sandbox Code Playgroud)

编辑(如果适用)vi /etc/hostconfig并删除该行MYSQLCOM=-YES-

如果您想确保杀死任何 MySQL 进程,请重新启动计算机尝试运行 mysql,它应该不起作用。

不要担心一些rm失败,他们只是不存在。

希望这会有所帮助,祝您有美好的一天!

  • 非常感谢。我再次做了`brew remove mysql56`和`brew install mysql56`。有用!确保应替换此路径:`/usr/local/opt/mysql@5.6`。 (2认同)