【问题标题】:MAMP - phpMyAdmin #2002 - Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock'MAMP - phpMyAdmin #2002 - 无法通过套接字“/Applications/MAMP/tmp/mysql/mysql.sock”连接到本地 MySQL 服务器
【发布时间】:2013-04-14 13:11:30
【问题描述】:

我在 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

有人遇到过这种问题吗?

【问题讨论】:

  • 在小牛队,我可以做相反的事情来让我的工作 - sudo ln -s /tmp/mysql.sock /Applications/MAMP/tmp/mysql/mysql.sock

标签: mysql sockets phpmyadmin mamp


【解决方案1】:

我看到的完全一样。 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';

现在可以了:)

【讨论】:

  • 我已经尝试过这些,但是没有用。然后我做了一些随机的事情,它的工作原理我不知道xD是怎么回事
  • 当我执行 sudo ln -s /Applications/MAMP ...我终端的所有命令(sudo、open、cat、vi ...)停止工作...
  • @GilbertoIbarra:这一定是一个无关的问题,一个简单的ln 不应该发生这种情况。
【解决方案2】:

当我通过主 Mamp 页面的链接(http://localhost/phpMyAdmin/?lang=en-iso-8859-1&language=English)转到默认 URI 时,我得到了相同的响应。我尝试了上一个答案的建议无济于事。但是,当我取消了 URI 中的一些选项,而只是转到以下任何一个选项时:

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

然后它起作用了。

【讨论】:

    【解决方案3】:

    可能会觉得很奇怪,但是我尝试从 tmp 目录中删除文件 mysql.sock 并且这个错误消失了......

    【讨论】:

      猜你喜欢
      • 2015-01-02
      • 2012-06-21
      • 2019-02-28
      • 2014-03-28
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      相关资源
      最近更新 更多