MAMP - phpMyAdmin #2002 - 无法通过套接字'/Applications/MAMP/tmp/mysql/mysql.sock'连接到本地MySQL服务器

11

我正在使用MAMP的phpMyAdmin进行操作,一切都很顺利,直到我在SQL选项卡中查询了一个ALTER TABLE语句。操作时间太长,所以我决定刷新页面。从那时起,我再也无法访问phpMyAdmin,并且总是会看到以下消息:

#2002 - Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2)

我尝试了很多在网上找到的方法,包括 Stackoverflow、Server Fault 等,例如重新安装 MAMP,将符号链接指向 /tmp/mysql.sock,修改 config.inc.php 等等,但都没有奏效。

当我从命令行运行 mysql 时,一切都很好:

$ /Applications/MAMP/Library/bin/mysql -u root -p
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.29 Source distribution

mysql> SHOW SCHEMAS;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0,65 sec)

mysqld 正常运行:

$ ps -e | grep mysql
 7007 ??         0:00.03 /bin/sh /Applications/MAMP/Library/bin/mysqld_safe --port=8889 --socket=/Applications/MAMP/tmp/mysql/mysql.sock --lower_case_table_names=0 --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --log-error=/Applications/MAMP/logs/mysql_error_log
 7141 ??         0:00.37 /Applications/MAMP/Library/bin/mysqld --basedir=/Applications/MAMP/Library --datadir=/Applications/MAMP/db/mysql --plugin-dir=/Applications/MAMP/Library/lib/plugin --lower-case-table-names=0 --log-error=/Applications/MAMP/logs/mysql_error_log.err --pid-file=/Applications/MAMP/tmp/mysql/mysql.pid --socket=/Applications/MAMP/tmp/mysql/mysql.sock --port=8889

并且套接字文件存在:

$ ls -la /Applications/MAMP/tmp/mysql/mysql.sock 
srwxrwxrwx  1 user  admin  0 21 avr 16:57 /Applications/MAMP/tmp/mysql/mysql.sock

有人已经遇到过这种问题了吗?

在 Mavericks 上,我能够通过以下方式相反地让我的程序工作起来:sudo ln -s /tmp/mysql.sock /Applications/MAMP/tmp/mysql/mysql.sock - kronus
3个回答

17
我看到的情况完全相同。MAMP中运行MySQL,但PHPMyAdmin显示以下错误信息:
MySQL说:
#2002 - Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

服务器无响应(或本地服务器套接字配置不正确)。
我使用了以下命令:sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock,以允许本地PHP CLI访问MAMP MySQL。 phpMyAdmin的配置文件在此处找到:/Applications/MAMP/bin/phpMyAdmin/config.inc.php 我在配置文件中添加了这个明确的路径。
$cfg['Servers'][$i]['socket'] = '/Applications/MAMP/tmp/mysql/mysql.sock';

现在它可以工作了 :)

1
我已经尝试过这些,但是没有起作用。然后我就随便搞了点东西,它就工作了,我不知道怎么回事 xD。 - Yaman
当我执行sudo ln -s /Applications/MAMP时,我的终端的所有命令(sudo,open,cat,vi等)都停止工作了... - Gilberto Ibarra
@GilbertoIbarra:那一定是一个无关的问题,一个简单的 ln 不应该发生这种情况。 - damd

2
当我通过Mamp主页的链接访问默认URI时,得到了同样的响应,该链接为http://localhost/phpMyAdmin/?lang=en-iso-8859-1&language=English。我尝试了之前答案中提到的建议但都没有成功。但是,当我删掉URI中的一些选项并转而访问以下任何一个:

  • http://localhost/phpMyAdmin/?language=English
  • http://localhost/phpMyAdmin/?lang=en-iso-8859-1
  • http://localhost/phpMyAdmin

那么它就可以工作了。


0

听起来很奇怪,但我尝试从 tmp 目录中删除 mysql.sock 文件,然后这个错误就消失了...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接