尝试了一切仍然得到 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (

Posted

技术标签:

【中文标题】尝试了一切仍然得到 ERROR 2002 (HY000): Can\'t connect to local MySQL server through socket \'/tmp/mysql.sock\' (2) in mac【英文标题】:Tried every thing still getting ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in mac尝试了一切仍然得到 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in mac 【发布时间】:2013-11-14 00:18:21 【问题描述】:

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

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

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

我尝试了几件事:

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

    mysqladmin: 连接到 'localhost' 的服务器失败 错误:'无法通过套接字'/tmp/mysql.sock'(2)连接到本地MySQL服务器' 检查 mysqld 是否正在运行并且套接字:'/tmp/mysql.sock' 存在!

    我检查并在/var/mysql/mysql.sock找到了mysql.sock文件。

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

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

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

这是来自/applications/xampp/xamppfiles/logs/error_log的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  

   

【问题讨论】:

你是否增加了 my.cnf 中的 max_connection 大小? 【参考方案1】:

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

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

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

【讨论】:

我在 tmp 文件夹下找不到 mysql.sock 文件。 RoshanComputer:tmp Roshan$ pwd /tmp RoshanComputer:tmp Roshan$ ls -la total 0 drwxrwxrwt 7 root wheel 238 Nov 3 08:53 . drwxr-xr-x@ 6 根轮 204 Oct 28 21:14 .. drwx------ 3 Roshan 轮 102 Nov 2 18:57 launch-6U3stf drwx------ 3 Roshan 轮 102 Nov 2 18 :57 launch-JtLO7T drwx------ 3 Roshan *** 102 Nov 2 18:57 launchd-160.pc1D6V drwx-- 3 _spotlight *** 102 Nov 2 18:58 launchd-320.Jgh4Fa drwx-- ---- 3 根轮 102 Nov 2 21:45 launchd-3875.fJ7OWJ 这表明 mysql 实际上并没有运行。看看你是否能找到某种类型的日志文件。也许熟悉 MAC 上事物所在位置的其他人可以插话并指出它们。日志可能会显示某种错误。 对不起,我在错误的路径中寻找 /tmp 而不是 /applications/xampp/xamppfiles/tmp。实际上mysql.sock文件在那里,我试图关闭xampp服务并且文件没有消失。所以我手动删除。在我重新启动 xampp 后,没有创建 mysql.sock 文件。尝试在 mac 中查找 mysql 的日志文件但没有运气。 为了确认 mysql 正在运行,我检查了活动监视器,mysqld 正在向它显示该窗口,当我关闭它时,当我打开 xampp 时它会重新出现。我想这意味着mysql正在工作。但不知道是什么问题? 也许下面的链接会有所帮助。 (它有一个屏幕截图建议在哪里可以找到日志)我现在需要睡觉,所以今晚不能再回复了。祝你好运。 ***.com/questions/14097399/…【参考方案2】:

终于设法解决了。 首先,我查看了错误的目录,我应该查看/applications/xampp/xamppfiles/

我做过的事情清单:

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

    我搜索了mysql.sock文件,在/applications/xampp/xamppfiles/var/mysql/mysql.sock下找到了。

由于 mysql 服务器连接无法通过套接字 /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
    现在我重新启动xampp服务并运行:mysql -u root -p,我可以进入mysql控制台。我还尝试从 php 脚本连接 mysql 并且运行正常。

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

【讨论】:

【参考方案3】:

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

mysqld stop
mysql.server start

【讨论】:

【参考方案4】:

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,就可以了。

【讨论】:

以上是关于尝试了一切仍然得到 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (的主要内容,如果未能解决你的问题,请参考以下文章

Mysql Xampp #2002 错误

无法启动 phpMyAdmin。不断收到 #2002 套接字错误

尝试了一切:仍然如何减小我的 apk 大小?

MySQL 突然停止了 LAMP 堆栈

laravel SQLSTATE[HY000] [2002] 没有这样的文件或目录 (SQL: select * from `sessions` where `id` =

MySQL 不会在 CentOS 5.5 和“ERROR 2002”中启动