El Capitan升级后Mysql无法正常工作

时间:2016-03-18 11:28:04

标签: mysql macos macports osx-elcapitan mysql5

我最近将Mac Pro升级到Mac Mini并使用迁移助手将我的所有文件和应用程序传输到Mac Mini。

我还重新安装了macports并配置了apache等。所以我设法让我的localhost和php在新机器上运行。

但是我现在无法从终端启动mysql?

当我尝试平常时:

mysql5 -u root -p;

并收到以下错误:

Error:  ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/local/var/run/mysql5/mysqld.sock' (2)

我也试过重启mysql:

sudo opt/local/share/mysql5/mysql/mysql.server restart

并收到以下错误:

ERROR! Manager of pid-file quit without updating file.

当我导航到我的mysql5目录/ opt / local / var / db / mysql5 /时,我看到了我的数据库列表,并看到以下PID文件:

myName.local.pid 

localhost pid

所以结构类似于我原来的Mac上的结构,但我对于导致mysql无法启动的原因感到困惑?

有趣的是,mysql必须仍然有效,因为当我在浏览器中运行.php脚本时,mysql查询工作并且正在检索数据。

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:2)

<强>解决

我想分享我遇到的解决此问题的解决方案。

当您从以前版本的OSX更新到El Capitan时,您的mysql设置会丢失。当您尝试通过以下方式连接时:

 mysql5 -u root -p;

我收到以下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/local/var/run/mysql5/mysqld.sock' (2)

问题在于my.cnf!

macports mysql的默认配置没有my.cnf(但它有其他的my-medium.cnf,my-small.cnf)所以Macports mysql客户端会查看Macports服务器设置的位置看。

我还了解到,如果您已经将套接字路径更改为默认值,那么您需要告诉它所在的位置。大多数程序都有一个可以被覆盖的硬编码默认值,我已经将macports默认覆盖了一个php编译到的那个,所以你需要告诉客户你已经改变了什么,否则应该知道它是怎么回事。

因为我在opt / local / share / mysql5 / mysql中没有my.cnf的副本,所以客户端不知道在哪里寻找套接字。所以我必须在my.cnf中为[client]和[mysqld]配置定义套接字的路径。

在我的情况下,套接字的路径应该是:

socket = /opt/local/var/run/mysql5/mysqld.sock

然后我重新启动了mysql:

sudo /opt/local/share/mysql5/mysql/mysql.server restart

最后成功。

希望这有帮助。