【问题标题】:Why phpmyadmin refuses to connect over localhost but accepts 127.0.0.1?为什么 phpmyadmin 拒绝通过 localhost 连接但接受 127.0.0.1?
【发布时间】:2018-09-25 02:44:00
【问题描述】:

我刚刚将我的 mac 更新到 10.13 并重新安装了我的开发工具。设置 phpmyadmin 时无法连接到 mysql:

$cfg['Servers'][$i]['host'] = 'localhost';

phpmyadmin 抛出:

phpMyAdmin 尝试连接到 MySQL 服务器,而服务器 拒绝连接。您应该检查主机、用户名和 配置中的密码并确保它们对应于 MySQL服务器管理员提供的信息。

我不得不使用它来让它工作:

$cfg['Servers'][$i]['host'] = '127.0.0.1';

过去我可以保留默认的“localhost”并且没有任何问题,但它不再通过套接字连接。

我的mysql用户是'root'@'localhost',使用最新的mysql、apache、phpmyadmin。

可能是什么原因? 谢谢

【问题讨论】:

  • 检查 localhost 指向的内容。也许它指向您的IP,由于某种原因无法访问。我在本地做 Android 工作时经常看到这个问题。

标签: mysql macos phpmyadmin localhost macos-sierra


【解决方案1】:

感谢@N00b Pr0grammer 的建议,我尝试了不同的解决方案,但我仍然想通了。

在全新安装 OS X 时,php.ini 已关闭,默认情况下会在“/var/mysql/mysql.sock”中查找 mysqli.default_socket,因此我必须 1. 将 php.ini.default 重命名为 php.ini大于 2. 设置:

mysqli.default_socket = /tmp/mysql.sock

并重新启动 apache。现在 phpmyadmin 也可以通过 localhost 连接到 mysql 了。

【讨论】:

  • 加一个为你的努力!
【解决方案2】:

发生这种情况的原因可能不止一个,在这个问题上也讨论过同样的问题。我建议您仔细阅读此问题提供的答案,以根据您所拥有的环境解决错误。

这是ServerFault question

我倾向于在开发环境中看到的常见问题是:

您可能启用了IPv6,它的本地主机很可能解析为IPv6 本地主机,这在您的MySQL 配置中没有定义。

【讨论】:

  • 它在 macOS 上,所以 IPv6 几乎总是打开的(并且往往在 IPv4 之前尝试)。服务未侦听 IPv6 是此类问题的常见原因。
  • 感谢您的链接!必须在 php.ini 中将 mysqli.default_socket 更改为 /tmp/mysql.sock
猜你喜欢
  • 2018-10-17
  • 1970-01-01
  • 2017-01-14
  • 2011-07-26
  • 1970-01-01
  • 2020-01-21
  • 2023-03-18
  • 1970-01-01
  • 2021-07-15
相关资源
最近更新 更多