每次我运行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]
我尝试过几件事: 1)通过在终端中绑定此命令来检查mysql是否正在运行:mysqladmin -u root -p status 结果是:mysqladmin:在'localhost'连接到服务器失败 错误:'无法通过套接字连接到本地MySQL服务器'/tmp/mysql.sock'(2)' 检查mysqld是否正在运行并且套接字:'/ tmp / mysql.sock'存在!
2)我检查并在/var/mysql/mysql.sock'中找到了mysql.sock文件。
可能引发此错误但无法说出错误的事情: 1)我最近将我的操作系统从Mountain Lion升级到Mavricks。 2)我还安装了单独的mysql来处理rails上的ruby。我已经确定该版本已关闭。
如果没有解决这个问题,我无法在本地进行任何开发,并且在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
答案 0 :(得分:11)
最后设法解决它。
首先我查看了错误的目录,我应该查看/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
mysql -u root -p
,我可以进入mysql控制台。我也尝试从php脚本连接mysql并运行ok。拔头发一天半后,我终于设法让它工作,希望人们会觉得这很有帮助。
答案 1 :(得分:0)
不确定如何在mac上获得正在运行的程序列表,但是您应该尝试验证mysqld实际上是否正在运行。 (在Linux上“top -bn1 | grep mysql”通常会显示一行信息,如果它正在运行,或者如果不是则没有。)
您也可以尝试停止mysqld并查看/tmp/mysql.sock是否消失。如果没有,则尝试删除它并重新启动mysql以查看它是否再次出现。 (它应该)
您是否有可能显示正在发生的事情的日志文件?
答案 2 :(得分:0)
看起来你的mysql服务器没有启动。使用以下命令:
mysqld stop
mysql.server start
答案 3 :(得分: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,然后工作。
答案 4 :(得分:-2)
ln -s /applications/xampp/xamppfiles/var/mysql/mysql.sock /tmp/mysql.sock为我工作! Mac OS X Mavericks,运行XAMPP 1.8.2 - Morgan Delaney 10月6日&14; 14:17
这对我也有用。我的Mac和XAMPP 5.6.30-0
中有MacOs sierra