为什么 mysql 在 localhost 上停止工作以及如何修复它?

为什么 mysql 在 localhost 上停止工作以及如何修复它?

我使用运行 Mac OS X 10.6.4 的 MacBook Pro

几年来,我一直使用 MAMP 在本地测试网站,但是当我启动 MAMP 服务器时,mysql 灯突然毫无原因地保持红色。

我不太清楚如何实际运行服务器,这也是我使用 MAMP 的主要原因。我还安装了 Sequel Pro 来管理我的数据库。当我尝试通过套接字连接在 Sequel Pro 中连接到 mysql 时,它说

在任何公共位置都找不到套接字文件。请提供正确的套接字位置。

进而

MySQL 说:无法通过套接字“tmp/mysql.sock”连接到本地 MySQL 服务器 (2)

如果我连接到主机 127.0.0.1,则无法连接并访问我的所有数据库,但我以前只是通过套接字连接,一切正常。此外,我本地托管的所有测试站点都不再由 PHP 处理。

我不知道为什么它突然停止工作,如果有人能对此事提供任何帮助,我将不胜感激。如果能提供解决方案就更好了。

谢谢。

答案1

我不想提出这个建议,但考虑到您提供的详细程度,我猜测 MAMP 所包含的底层应用程序对您来说几乎是陌生的(至少在它们如何在较低级别上运行以及如何通过配置进行操作等方面),所以我认为最好的选择是完全卸载并重新安装。

然而,如果您愿意开始挖掘和学习,让我们首先关注 MySQL,因为它似乎是您的更大问题:

  1. 通过检查日志确认 MySQLd 正在做什么或者遇到的任何问题(当您提出问题时提供日志是一个好主意,这样其他人可以帮助您);

  2. 要查找日志和/或 MySQLd 正在使用的配置文件,您需要确定 MAMP 如何调用 MySQL - 执行进程列表是查看此信息的最快方法,使用ps(不确定 BSD/OS X 方法,但类似的东西ps -eFw应该会给您一个提示,否则请检查相关的手册页),或者使用 OS X 的内置活动监视器Applications-> Utilities);

  3. 如果没有给 MySQL 守护进程提供参数,那么它要么是一个包装脚本(应该file /mysql/command/of/process/running会告诉您这一点),您需要深入研究才能找到命令,要么使用默认参数调用它......在这种情况下,命令mysqladmin variables应该让您了解它是如何配置的;

  4. 由于 MySQL 的 UNIX 与 TCP 套接字选项是可配置的,因此您的最后一步将是找到配置文件(通常是my.cnf)并检查套接字定义是否到位(类似于socket=/tmp/mysql.sock),一旦确认,您还需要检查运行 MySQL 守护程序的用户的权限是否良好。

请记住,根据日志的内容,这些步骤中的大多数可能变得无关紧要。因此,找到它们至关重要。文件可能已经存在,或者存在权限问题。

相关内容