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



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

我还重新安装了macports并配置了apache等。所以我设法让我的本地主机和 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 查询工作并且正在检索数据。

任何帮助非常感谢。

已解决

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

当您从以前版本的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

终于成功了。

希望这有帮助。

相关内容

  • 没有找到相关文章

最新更新