簡體   English   中英

WordPress無法連接到MySQL,但Workbench將

[英]WordPress fails to connect to MySQL but Workbench will

所以我的問題是,我們試圖在IIS下的Windows服務器(2012)上建立WordPress網站。 我使用WebPI來安裝PHP,並使用PHP Manager對其進行配置。 我們在10.0.0.x上有一個數據庫服務器,它同時運行SQL Server和MySQL。 我們已經完成所有設置,但是WordPress無法連接。 我們收到以下錯誤:

用戶'user'@'ip-10-0-0-xxcompute.internal'的訪問被拒絕(使用密碼:是)

我已經試過了:

$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並回mysqli mysql庫。 這可能就是為什么它無法連接。 但是有什么區別?為什么要對一個進行身份驗證而不對另一個進行身份驗證?

MySQL Community版本:5.6

PHP 5.3(最初嘗試5.6)

有任何想法嗎?

更新:因為出現了問題,所以我意識到WordPress可以工作。 那不是問題。 MySQL用戶設置為'user'@'%'。 顯然,我可以使用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使用單獨的用戶帳戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM