2012-07-11 160 views
1

我有一個在godaddy服務器上設置的數據庫。它被配置爲允許遠程訪問,並且我正在運行一些需要訪問這些數據的網站。它可以從另一個godaddy網站訪問,並且可以在工作和家中從我的開發環境進行連接。我們最近設置了與mydomain.com的託管。MySQL遠程訪問麻煩?

這裏是代碼塊觸發它:

function connect(){ 
    $servername = "XX.XX.XXX.XX"; 
    $dbusername = "databaseusername"; 
    $dbpassword = "mahpassword"; 
    $dbname = "databasename"; 
    try{ 
     $newMysql = new PDO("mysql:host=".$servername.";dbname=".$dbname, $dbusername, $dbpassword); 
    } 
     catch(PDOException $e){ 
     echo 'connection Failed: '. $e->getMessage(); 
     die; 
    } 
} 

,現在我在新網站上收到此錯誤信息:

connection Failed: SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'XX.XX.XXX.XX' (111) 

我能想到的唯一的問題是,或者由於某種原因,MySQL數據庫默認連接到的IP地址數量有限(這看起來很狼狽),我被MySQL服務器上的防火牆阻止(再次......對我來說沒有意義) ,或者在mydomain託管服務器上有一些設置禁止遠程請求(?)

我是新來的這種事情,所以我打開任何建議。我可能只是在新網站上設置了另一個數據庫,但如果我不需要,我不希望讓它們保持同步的麻煩。什麼可能是錯的?有沒有解決方法?

[編輯]通過控制檯(mysql -h XX.XX.XXX.XX ...)連接到遠程數據庫 ,所述特權被INFORMATION_SCHEMA信息數據庫下找到,一個快速select * from SCHEMA_PRIVILEGESselect * from USER_PRIVILEGES表明'databaseusername'@'%'具有足夠的特權。這並不是說它對我有幫助,但也許它會幫助某個人。

+5

「無法連接」消息可能是防火牆塊。驗證您的主機允許遠程連接,但很多情況下不允許。 – 2012-07-11 15:04:14

+0

你可以從控制檯運行'mysql -h XX.XX.XXX.XX -u databaseusername -p'嗎? – 2012-07-11 15:13:15

+0

是的,從控制檯運行。 – Riet 2012-07-11 15:23:06

回答

1

由於我問了這個問題已經有一年多了,我想我只需要回答它就可以關閉它。

事實證明,godaddy通過防火牆阻止了mydomain.com服務器(「遠程訪問」是有限的)。所以爲了完成我想要做的事情,我必須在兩個站點上覆制和存儲數據庫。