8

每次我运行 XAMPP 并尝试运行$mysql -u root -p时,它都会向我抛出一个错误,即:

ERROR 2002 (HY000): 无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器 (2)

我在 Mac OS-10.9 中使用 XAMPP 版本 1.7.3。启动 Apache 和 MySQL 不是问题,我已经通过活动监视器确认 Apache 已经启动。

我尝试了几件事:

  1. 通过在终端中键入以下命令来检查 MySQL 是否正在运行:mysqladmin -u root -p status. 结果是:

    mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)' 检查 mysqld 是否正在运行并且套接字:'/tmp/mysql .sock' 存在!

  2. 我检查并在/var/mysql/mysql.sock.

可能触发此错误但不能说出问题所在的事情:

  1. 我最近将我的操作系统从 Mountain Lion 升级到了 Mavericks。
  2. 我还安装了单独的 MySQL 来使用 Ruby on Rails。我已确保该版本已关闭。

如果不解决此问题,我将无法在本地进行任何开发,并且在 PHP 脚本中连接 MySQL 似乎是不可能的。因此,任何帮助将不胜感激。

这是来自的 error_log 文件/applications/xampp/xamppfiles/logs/error_log

[Sat Nov 02 09:56:31 2013] [notice] caught SIGTERM, shutting down
[Sat Nov 02 09:56:39 2013] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Sat Nov 02 09:56:40 2013] [notice] Digest: generating secret for digest authentication ...
[Sat Nov 02 09:56:40 2013] [notice] Digest: done
[Sat Nov 02 09:56:40 2013] [notice] Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Sat Nov 02 12:55:47 2013] [notice] caught SIGTERM, shutting down
[Sat Nov 02 13:40:16 2013] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Sat Nov 02 13:40:18 2013] [notice] Digest: generating secret for digest authentication ...
[Sat Nov 02 13:40:18 2013] [notice] Digest: done
[Sat Nov 02 13:40:18 2013] [notice] Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Sat Nov 02 15:12:39 2013] [notice] caught SIGTERM, shutting down
[Sat Nov 02 20:54:41 2013] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Sat Nov 02 20:54:43 2013] [notice] Digest: generating secret for digest authentication ...
[Sat Nov 02 20:54:43 2013] [notice] Digest: done
[Sat Nov 02 20:54:44 2013] [notice] Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Sat Nov 02 21:10:53 2013] [notice] caught SIGTERM, shutting down
[Sat Nov 02 21:10:57 2013] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Sat Nov 02 21:10:58 2013] [notice] Digest: generating secret for digest authentication ...
[Sat Nov 02 21:10:58 2013] [notice] Digest: done
[Sat Nov 02 21:10:58 2013] [notice] Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Sat Nov 02 21:31:39 2013] [notice] caught SIGTERM, shutting down
[Sat Nov 02 21:31:44 2013] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Sat Nov 02 21:31:47 2013] [notice] Digest: generating secret for digest authentication ...
[Sat Nov 02 21:31:47 2013] [notice] Digest: done
[Sat Nov 02 21:31:47 2013] [notice] Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Sat Nov 02 21:45:07 2013] [notice] caught SIGTERM, shutting down
[Sun Nov 03 08:50:06 2013] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Sun Nov 03 08:50:09 2013] [notice] Digest: generating secret for digest authentication ...
[Sun Nov 03 08:50:09 2013] [notice] Digest: done
[Sun Nov 03 08:50:10 2013] [notice] Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations  

   
4

4 回答 4

15

最后设法解决它。首先,我查看了错误的目录,我应该查看/applications/xampp/xamppfiles/.

我做过的事情清单:

  1. /applications/xampp/xamppfiles 下没有 tmp 文件夹,所以我创建了它(mkdir tmp)。

  2. 我搜索了 mysql.sock 文件并在/applications/xampp/xamppfiles/var/mysql/mysql.sock.

由于 mysql 服务器连接无法通过 socket 工作/tmp/mysql.sock,我使用以下命令将我/applications/xampp/xamppfiles/var/mysql/mysql.sock指向/tmp/mysql.sock文件。

所以这个命令成功了:

ln -s /applications/xampp/xamppfiles/var/mysql/mysql.sock /tmp/mysql.sock
  1. 现在我重新启动 xampp 服务并运行:mysql -u root -p,我可以进入 mysql 控制台。而且我还尝试从 php 脚本连接 mysql 并且它运行正常。

在拉了一天半的头发后,我终于设法让它工作了,希望人们会觉得这很有帮助。

于 2013-11-03T17:57:55.450 回答
0

不确定如何在 mac 上获得正在运行的程序列表,但您应该尝试验证 mysqld 是否实际运行。(在 linux 上,“top -bn1 | grep mysql”如果正在运行,通常会显示一行信息,否则不会显示任何信息。)

您也可以尝试停止 mysqld 并查看 /tmp/mysql.sock 是否消失。如果没有,请尝试删除它并重新启动 mysql 以查看它是否再次出现。(它应该)

您是否有任何可能显示正在发生的事情的日志文件?

于 2013-11-03T04:38:21.467 回答
0

XAMPP mac 有默认设置存储 mysql.sock 另一个位置。只是改变它:)

$ vim /applications/xampp/xamppfiles/etc/my.cnf

[client]
#password   = your_password
port        =3306
#socket     =/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
socket      =/tmp/mysql.sock         <---------

...

[mysqld]
user=mysql
port=3306
#socket     =/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
socket      =/tmp/mysql.sock        <---------

重新启动mysql,然后工作。

于 2021-07-27T06:44:50.660 回答
0

看起来你的mysql服务器没有启动。使用以下命令:

mysqld stop
mysql.server start
于 2017-12-31T04:03:39.497 回答