尝试了一切仍然得到 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' (的主要内容,如果未能解决你的问题,请参考以下文章
无法启动 phpMyAdmin。不断收到 #2002 套接字错误
laravel SQLSTATE[HY000] [2002] 没有这样的文件或目录 (SQL: select * from `sessions` where `id` =