解决方案:

解决方案:

在我完全重启之后,我的 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

除此之外,您不需要去很多其他地方寻找……

相关内容