2013-03-27 72 views
-1

我來自mysql_select_db背景,需要起牀mysqli。mysqli連接php媒體寺廟

我在使用mysqli連接到Media Temple的數據庫時遇到了問題。 我已經通過在MT服務器上通過php myAdmin進行連接來確認連接信息是正確的。(000000在下面被替換)。

我的代碼:

$mysqli = new mysqli("internal-db.000000.gridserver.com", "db000000", "password", "db000000_dbName"); 
$result = $mysqli->query("select * from 'users'"); 
$row = $result->fetch_assoc(); 
echo htmlentities($row['fieldName']); 

我收到以下錯誤:

Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2003): Can't connect to MySQL server on 'internal-db.000000.gridserver.com' (61) 

Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli //this is because of the bad connection 

Fatal error: Call to a member function fetch_assoc() on a non-object //this is because of the bad connection 

這裏有MT的網站的鏈接: http://kb.mediatemple.net/questions/4/Why+can%27t+I+connect+to+my+MySQL+database+from+PHP%3F#gs

缺少什麼我在這裏?謝謝閱讀。

+0

所以如果你使用mysql而不是mysqli進行連接 - 它的工作原理?! – herrjeh42 2013-03-27 23:14:16

+0

並且:你如何確認設置是否正確 - 是否使用shell中的mysqlclient連接到mysql服務器? – herrjeh42 2013-03-27 23:16:21

+1

您可以通過ssh連接到服務器,並運行適合您的設置的「mysql --host = localhost --user = myname --password = mypass mydb」 - 以確保它可以正常工作。他們不會跳過例如手冊中的端口? – herrjeh42 2013-03-27 23:28:45

回答

1

服務器地址是否具有這種格式?

internal-db.000000.gridserver.com

如果您在internal-db.000000.gridserver.com上執行ping操作,您是否獲得IP?

+0

Ping沒有回來,這個地址似乎是他們想要的,每次編輯我剛剛發佈。 – 2013-03-27 23:10:03

+0

你的密碼是否包含特殊字符,比如''或''? 只有第一個錯誤是interresting,因爲其他錯誤是由於第一個 – Acuao 2013-03-27 23:14:57

+0

密碼內有一個感嘆號 – 2013-03-27 23:16:00

0

您的連接未針對主機建立。如果此腳本與數據庫在同一主機上運行,​​則只需使用localhost而不是全限定主機名。對於用戶名或遠程訪問權限問題,錯誤消息將有所不同。這看起來更像是一個網絡(防火牆)類型的問題。

+0

主機顯示一些例子,他們使用子域名,所以我想他們打開防火牆.. – Acuao 2013-03-27 23:25:51

+1

如果你不是內部/本地從MT站點潛在的問題:對於外部連接,使用external-db。 s00000.gridserver.com取而代之,並確保您的IP地址已被添加到允許的外部IP列表中,請點擊此處 – GhostScript 2013-03-27 23:35:36

+0

mmh yeah interresting ... @JWC_WDC您是否簡單地嘗試過'localhost'? – Acuao 2013-03-27 23:40:34