El Capitan 升级后 Mysql 不工作
Posted
技术标签:
【中文标题】El Capitan 升级后 Mysql 不工作【英文标题】:Mysql Not Working After El Capitan Upgrade 【发布时间】:2016-07-05 03:18:58 【问题描述】:我最近将我的 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 并启动管理会话。 Apple 如何通过该升级搞砸你的 mysql 安装,这真是太糟糕了。签 ;烧得很厉害。 谢谢。会试一试的。 【参考方案1】:已解决
我想分享我遇到的解决此问题的解决方案。
当您从以前版本的 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的副本,所以客户端不知道去哪里找socket。所以我必须在 my.cnf 中为 [client] 和 [mysqld] 配置定义套接字的路径。
在我的情况下,套接字的路径应该是:
socket = /opt/local/var/run/mysql5/mysqld.sock
然后我重启了mysql:
sudo /opt/local/share/mysql5/mysql/mysql.server restart
终于成功了。
希望这会有所帮助。
【讨论】:
以上是关于El Capitan 升级后 Mysql 不工作的主要内容,如果未能解决你的问题,请参考以下文章
升级到 El Capitan 后出现无效的活动开发者路径错误
升级到 OSX El Capitan 后 iOS 模拟器 NSPOSIXErrorDomain Code=2
OS X El Capitan 上的 MySQL 5.7.9:错误服务器退出而不更新 PID 文件
El Capitan 升级:未加载库:/usr/local/lib/libmysqlclient.18.dylib