我们的服务器遇到了一个非常奇怪的问题。
任何用户(包括root)都无法访问本地系统上的mysql,并且它会在刷新之间进行交换。
我们正在使用一个简单的 php 脚本来测试它......
$username = "test";
$password = "pass123";
$conn = new mysqli("localhost", $username, $password);
if ($conn->connect_error) {echo "[localhost] Connection failed: " . $conn->connect_error;} else echo "[localhost] Connected successfully";
echo "<hr>";
$conn = new mysqli("127.0.0.1", $username, $password);
if ($conn->connect_error) {echo "[127.0.0.1] Connection failed: " . $conn->connect_error;} else echo "[127.0.0.1] Connected successfully";
echo "<hr>";
$conn = new mysqli("192.168.1.2", $username, $password);
if ($conn->connect_error) {echo "[192.168.1.2] Connection failed: " . $conn->connect_error;} else echo "[192.168.1.2] Connected successfully";
所以让我引导您完成整个序列。
- 已配置 MySQL 用户,user@%,密码为 123,所有数据库均具有完整的服务器权限。
- PHP 脚本已运行。前两个测试因访问被拒绝而失败。最后一个成功。
- 重新配置Mysql用户: [email protected]
- 脚本运行:所有三个都被拒绝。
- MySQL 刷新权限
- 前两个成功。最后失败了。 (有道理)
- 配置的 MySQL 用户:user@% (步骤 1 的原始内容)
- 脚本运行:三个都成功。 (万岁?不)
- MySQL Flush Privs(和/或服务器重启)
- 返回第 2 步。
我们无法使用 Coldfusion 或 PHP 来维持连接。它首先工作,第一次连接,当 [email protected] (在mysql中如此配置),但随后在coldfusion中失败,并且php无法可靠地连接,具体取决于服务重新启动或刷新。 PHP 确实概括了这个问题,如上所示。但用于 Coldfusion 的 JDBC 连接器似乎随机工作或不工作。
你知道这里发生了什么吗? user@% 应该始终有效,不是吗?
- MySQL v5.5、PHP v 7、Coldfusion v11(最新 jdbc .38)。 Windows Server 2012。
- my.cnf 未配置绑定(bind)地址(允许所有主机)。
- 最大连接数 = 500
- ipv6 已禁用 (OxFFFFFF)
- 防火墙已关闭。
- 相同的数据库、相同的用户和相同的配置在我们尝试从中迁移的 Windows Server 2008 上运行良好。这些都是每个软件的全新安装。我们能够简单地创建 user@%,并始终在所有 3 个测试中进行连接。
附加说明:
- 在浏览器(本地 IIS)中输入“localhost”时,有时有效,有时无效。 127.0.0.1 始终工作正常。
- 没有主机条目,因为 win7+ 使用内部 DNS。我们添加了 localhost 条目,但没有效果。
- IIS 一直对我们卡住。这些网站开始在浏览器中“旋转”,并且永远不会加载。我们必须运行 iisreset。我们无法确定为什么会发生这种情况 - 这似乎是随机的。似乎与本地主机问题有关,是吗?
最佳答案
找到答案了,抱歉,大家应该再研究一下。 https://serverfault.com/questions/122472/allowing-wildcard-access-on-mysql-db-getting-error-access-denied-for-use
有时我们通过谈论它来找到正确的关键字,即橡皮鸭效应。
基本上,显然,mysql 默认情况下包含一个空白用户记录,主机为 localhost,它取代任何 user@%。导致这种行为。 删除用户,问题解决。现在我的防火墙可以重新打开...哇。
我想我提到的 IIS 问题是另一天的主题......
关于php - MySQL 本地主机访问被拒绝,直到刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36758237/