我最近将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查询便可以工作并且正在检索数据。
任何帮助,不胜感激。
下载mysqlworkbench并启动管理会话。 苹果如何通过升级将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副本,所以客户端不知道在哪里寻找套接字。因此,我必须在[client]和[mysqld]配置中在my.cnf中定义套接字的路径。
在我的情况下,套接字的路径应该是:
socket = /opt/local/var/run/mysql5/mysqld.sock
然后,我重新启动了mysql:
sudo /opt/local/share/mysql5/mysql/mysql.server restart
最后成功了。
希望这可以帮助。