Php WordPress无法连接到MySQL,但Workbench将
所以我的问题是,我们正在尝试在IIS下的Windows服务器(2012)上设置WordPress站点。我使用WebPI安装PHP,并使用PHP管理器进行配置。我们有一个10.0.0.x的数据库服务器,它同时运行SQL server和MySQL。我们都准备好了,但是WordPress无法连接。我们得到以下错误: 用户“user”@“ip-10-0-0-x.x.compute.internal”的访问被拒绝(使用密码:是) 我试过这个:Php WordPress无法连接到MySQL,但Workbench将,php,mysql,wordpress,mysqli,Php,Mysql,Wordpress,Mysqli,所以我的问题是,我们正在尝试在IIS下的Windows服务器(2012)上设置WordPress站点。我使用WebPI安装PHP,并使用PHP管理器进行配置。我们有一个10.0.0.x的数据库服务器,它同时运行SQL server和MySQL。我们都准备好了,但是WordPress无法连接。我们得到以下错误: 用户“user”@“ip-10-0-0-x.x.compute.internal”的访问被拒绝(使用密码:是) 我试过这个: $link = mysqli_connect(DB_HOST,
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS) or die(mysqli_connect_error());
$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\u connect
扩展,结果相同。于是我尝试了这个:
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS) or die(mysqli_connect_error());
$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工作台也能够连接。我能够确定WordPress正在使用mysqli
,并返回到mysql
库。这可能就是它无法连接的原因。但是有什么区别,为什么它要验证一个而不是另一个
MySQL社区版本:5.6
PHP5.3(最初尝试5.6)
有什么想法吗
更新:因为这个问题出现了,我意识到WordPress是有效的。这不是问题。MySQL用户设置为“用户”@“%”。显然,我可以使用PDO从该主机连接到该服务器上的该用户。我的问题是为什么PDO可以连接而mysqli不能?嗯,你知道,WordPress工作正常。它有数以千万计的工作装置。它适用于我们能想象到的每一种配置,有些我们不能。乱搞php版本和所有这些可能是浪费时间 查看服务器上WordPress安装根目录中的
wp config.php
文件。请注意以下几行:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'REDACTED_DATABASE_NAME');
/** MySQL database username */
define('DB_USER', 'REDACTED_USER_NAME');
/** MySQL database password */
define('DB_PASSWORD', 'REDACTED_PASSWORD');
/** MySQL hostname */
define('DB_HOST', 'your_host_name_or_ip_address');
确保这些值是您认为应该的值。如果值不正确,请编辑它们
请记住,MySQL需要单独的用户帐户user@localhost及user@anotherhost.我知道WordPress工作正常。我的想法是,我的PHP安装有问题,或者我不知道的版本不兼容。我直接从
wp config.php
复制了user/name/password,并在Workbench中很好地使用了它们。该用户实际上是具有防火墙规则的“用户”@“%”。