【发布时间】:2015-12-30 01:44:48
【问题描述】:
所以我的问题是我们正在尝试在 IIS 下的 Windows 服务器(2012)上设置 WordPress 站点。我使用 WebPI 安装 PHP 并使用 PHP 管理器对其进行配置。我们在 10.0.0.x 有一个数据库服务器,它同时运行 SQL Server 和 MySQL。我们都设置好了,但是 WordPress 没有连接。我们得到以下错误:
用户 'user'@'ip-10-0-0-x.x.compute.internal' 的访问被拒绝(使用密码:YES)
我试过这个:
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS) or die(mysqli_connect_error());
我还尝试使用 mysql_connect 扩展名,结果相同。所以我尝试了这个:
$pdo = new PDO('mysql:host=10.0.0.x;dbname=DB_NAME', 'DB_USER', 'DB_PASS');
$statement = $pdo->query("SELECT user_login FROM wp_users WHERE ID = 1");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['user_login']);
而且效果很好。它连接、运行查询并返回值。 MySQL Workbench 也能够连接。我能够确定 WordPress 正在使用 mysqli 并回退到 mysql 库。这可能就是它无法连接的原因。但是有什么区别?为什么它会验证一个而不验证另一个?
MySQL 社区版本:5.6
PHP 5.3(最初尝试 5.6)
有什么想法吗?
更新:因为问题出现了,我意识到 WordPress 有效。那不是问题。 MySQL 用户设置为 'user'@'%'。显然,我可以使用 PDO 从该主机连接到该服务器上的该用户。我的问题是为什么 PDO 可以连接而 mysqli 不能?
【问题讨论】:
标签: php mysql wordpress mysqli