由于之前第一次装MySQL,默认的datadir在启动盘中,我想要将datadir移动到更大的存储盘中。无奈网上的各种文章的方法在我这里总是不work。我决定重新用homebrew来装一遍MySQL。
可是由于之前各种尝试导致的乱七八糟的操作过多,以至于我连之前装MySQL的方法也用不了了。无奈之下,只得一步步摸索重来。
1. 彻底清除MySQL
之前混乱操作过多,于是只得相对彻底地把之前的痕迹清除
ps -ax | grepmysql
# stop andkillany MySQL processes
#rmfiles and directoriessudo rm /usr/local/mysqlsudo rm -rf /usr/local/var/mysqlsudo rm -rf /usr/local/mysql*
sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plistsudo rm -rf /Library/StartupItems/MySQLCOMsudo rm -rf /Library/PreferencePanes/My*launchctl unload-w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
# edit/etc/hostconfig and remove the line MYSQLCOM=-YES-#rmfiles and directoriesrm -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
brewinstallmysql
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://stackoverflow.com/questions/4359131/brew-install-mysql-on-mac-os
http://stackoverflow.com/questions/9918062/another-mysqld-server-running-on-port-3306-error