为啥 phpmyadmin 拒绝通过 localhost 连接但接受 127.0.0.1?

Posted

技术标签:

【中文标题】为啥 phpmyadmin 拒绝通过 localhost 连接但接受 127.0.0.1?【英文标题】: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 工作时经常看到这个问题。 【参考方案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

以上是关于为啥 phpmyadmin 拒绝通过 localhost 连接但接受 127.0.0.1?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我无法在 wamp 服务器中访问 phpMyAdmin? [关闭]

拒绝访问 phpmyadmin

使用 xampp 拒绝访问 phpmyadmin

wampserver安装了进去phpadmin被拒绝访问?是为啥呢

在 phpMyAdmin 中创建函数 - 错误:拒绝访问您需要此操作的超级权限

phpMyAdmin 访问被拒绝