2015-10-01 84 views
0

所以我的問題是,我們正試圖在IIS下的Windows服務器(2012)上設置一個WordPress站點。我使用WebPI來安裝PHP並使用PHP管理器來配置它。我們有一個運行SQL Server和MySQL的數據庫服務器10.0.0.x。我們已經完成了所有設置,但WordPress無法連接。我們得到以下錯誤:WordPress無法連接到MySQL,但工作臺將

Access denied for user 'user'@'ip-10-0-0-x.x.compute.internal' (using password: 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不能?

回答

-1

那麼,你知道,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。

+0

我知道WordPress的工作正常。我的想法是,有些東西與我的PHP安裝或我不知道的某些版本不兼容有關。我直接從'wp-config.php'複製了用戶/名稱/密碼,並在Workbench中使用它們。用戶實際上是'user'@'%',防火牆規則已到位。 – ahwm

相關問題