MySQL 重装

时间:2022-03-27 08:44:11

由于之前第一次装MySQL,默认的datadir在启动盘中,我想要将datadir移动到更大的存储盘中。无奈网上的各种文章的方法在我这里总是不work。我决定重新用homebrew来装一遍MySQL。

可是由于之前各种尝试导致的乱七八糟的操作过多,以至于我连之前装MySQL的方法也用不了了。无奈之下,只得一步步摸索重来。

1. 彻底清除MySQL

之前混乱操作过多,于是只得相对彻底地把之前的痕迹清除

ps -ax | grep mysql
# stop and kill any MySQL processes # rm files and directories
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 # edit /etc/hostconfig and remove the line MYSQLCOM=-YES- # rm files and directories
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* # try to run mysql, it shouldn't work

注意,除此之外, 还要将以下文件或文件夹好好查看及清理

/tmp/  #这里有mysql.sock 以及 mysql.sock.lock 文件,我之前不小心把lock文件的user改成_mysql了,导致后面一直不work。因此,最好把这两个文件都删掉
/etc/my.cnf #这个文件当时创建以后就没扔,导致后来重装总出问题,也把这个文件删掉

2. brew install

接下来,就可以使用brew来安装了

brew doctor # and fix any errors
brew uninstall mysql
brew cleanup
brew update
brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=·whoami· --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql #5.7 没有 --tmpdir选项
mysql.server start

接下来应该就没有问题了。

如果还有问题,可能是你之前已经成功登陆,但是忘了

lsof -i TCP:3306 # 找到正在占用ip的process id

kill [pid] # 终止该进程

mysql.server start

Reference

http://*.com/questions/4359131/brew-install-mysql-on-mac-os

http://*.com/questions/9918062/another-mysqld-server-running-on-port-3306-error