在我完全重启之后,我的 Apache PHP 服务器仍然无法连接到本地 MySQL(通过 127.0.0.1 连接,因为 localhost 由于某种原因总是失败)。
所以我今天做了这个:
➜ ~ mysqladmin shutdown -u root -p
Enter password:
➜ ~ mysqladmin shutdown -u root -p
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
这基本上意味着我成功关闭了 mysql。但是我一关闭它,Apache PHP 就成功连接到 MySQL,我的本地站点在下次重新启动之前可以顺利运行。
以下是其他一些详细信息:(正如您所看到的 - 我已经通过安装了 MySQL brew
)
➜ ~ sudo ps aux | grep mysql
N 4774 0.0 0.0 2432768 620 s000 S+ 9:53AM 0:00.00 grep mysql
N 4772 0.0 2.6 3030168 440688 ?? S 9:51AM 0:00.29 /usr/local/Cellar/mysql/5.6.13/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.13 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.13/lib/plugin --bind-address=127.0.0.1 --log-error=/usr/local/var/mysql/N.local.err --pid-file=/usr/local/var/mysql/N.local.pid
N 4686 0.0 0.0 2433432 1000 ?? S 9:51AM 0:00.01 /bin/sh /usr/local/opt/mysql/bin/mysqld_safe --bind-address=127.0.0.1
N 4362 0.0 2.7 3120276 458728 ?? S 9:47AM 0:00.45 mysqld
➜ ~ lsof -i | grep mysql
mysqld 4362 N 16u IPv6 0x76959e40691f9f93 0t0 TCP *:mysql (LISTEN)
这是奇怪的事情:
➜ ~ killall -9 mysqld
MySQL 已死!Apache 无法连接。然后,当我运行:
➜ ~ sudo mysqladmin shutdown -u root -p
Enter password:
Apache(再次)能够成功连接到 MySQL。
据我所知,这意味着我设置了两个 mysql 服务器,并且它们都试图同时启动,但我对如何修复它一无所知。我尝试过重新安装 brew,但没有帮助。
➜ ~ which mysqladmin
/usr/local/bin/mysqladmin
➜ ~ whence -p mysql
/usr/local/bin/mysql
解决方案:
步骤 1 来自 https://stackoverflow.com/questions/1436425/how-do-you-uninstall-mysql-from-mac-os-x
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
vim /etc/hostconfig and removed the line MYSQLCOM=-YES-
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*
答案1
我建议检查一下你在 /Library/LaunchDaemons 中设置了哪些启动守护进程...我不确定 brew 使用什么来配置启动项,但在 Mac OS X 上,launchd
这是目前的建议。如果你在 /Library/LaunchDaemons 中找到与 MySQL 相关的内容,你可以使用类似以下命令将其卸载:
sudo launchctl unload /Library/LaunchDaemons/com.example.plist
Mac OS X 的早期版本(10.5;10.6)包含 MySQL,它安装在 /System/Library/LaunchDaemons 文件夹中:
sudo launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist
如果您安装了 Oracle/Sun 的 MySQL 版本,则可能在 /Library/StartupItems 中仍有一个 MySQL StartupItem。应该可以按如下方式停止该服务:
sudo /Library/StartupItems/MySQLCOM/MySQLCOM StopService
除此之外,您不需要去很多其他地方寻找……