php - MySQL 本地主机访问被拒绝,直到刷新

标签 php mysql coldfusion localhost access-denied

我们的服务器遇到了一个非常奇怪的问题。

任何用户(包括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";

所以让我引导您完成整个序列。

  1. 已配置 MySQL 用户,user@%,密码为 123,所有数据库均具有完整的服务器权限。
  2. PHP 脚本已运行。前两个测试因访问被拒绝而失败。最后一个成功
  3. 重新配置Mysql用户: [email protected]
  4. 脚本运行:所有三个都被拒绝
  5. MySQL 刷新权限
  6. 前两个成功。最后失败了。 (有道理)
  7. 配置的 MySQL 用户:user@% (步骤 1 的原始内容)
  8. 脚本运行:三个都成功。 (万岁?不)
  9. MySQL Flush Privs(和/或服务器重启)
  10. 返回第 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/

相关文章:

mysql - dropwizard 和 hibernate 中的主从

php - 如何在表单的选择列表中使用 "any"在mysql中工作?

coldfusion - ColdFusion 中的错误处理 LT

string - Coldfusion - 您可以将字符串视为没有分隔符的列表吗?

php - 如何在 UML 类图中描述一个方法接受多种类型?

php - Laravel 处女 : Inject a Model In Controller as Dependency

PHP 相当于 IMAP 的 cURL "user-interface"

php - 如果使用 PHP 不存在标题标签,则添加 nofollow 属性以链接

php - 从 MySQL 数据库获取数据的通用 PHP 函数

arrays - Coldfusion 将一个阵列一分为二