2012-01-16 130 views
0

我試圖從服務器B連接到服務器A上的MYSQL數據庫。我們正在使用的託管公司擁有服務器A和服務器B.這是我第一次嘗試在外部數據庫連接。將php-sql連接失敗縮小到服務器設置?

我寫了下面的PHP代碼嘗試連接到MySQL數據庫服務器A從服務器B的代碼看起來像我在Google搜索方面來連接外部MySQL數據庫大多數其他代碼..

$IPAddress_O_fServer_A = 'XXX.XX.XX.XXX'; 
$Server_A_DB_Pass = 'P-WORD'; 
$Server_A_DB_User = 'U-NAME'; 
$con = mysql_connect($IPAddress_Of_Server_A, $Server_A_DB_User, $Server_A_DB_Pass); 

現在,當這個代碼在服務器B上執行,我得到這個錯誤:

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'XXX.XX.XX.XXX' (4) in /var/www/web12/web/dev/front-end.php on line 10 
Could not connect: Can't connect to MySQL server on XXX.XX.XX.XXX' (4) 

...其中,10號線是mysql_connect()函數調用。

有沒有人看到這段代碼有什麼問題? 如果連接無法正常工作,那麼可以肯定地說服務器的外部連接權限或其他設置必須存在問題?

謝謝!

+0

(1)http://dev.mysql.com/doc/refman/5.5/en/access-denied.html(2)http://www.cyberciti.biz/tips/how-do -i-enable-remote-access-to-mysql-database-server.html – 2012-01-16 19:24:17

+0

在本地主機上測試時用戶U-NAME是否可以連接數據庫? – BartekR 2012-01-16 19:24:59

+0

可能是一個安全的服務器,不接受本地主機之外的連接... – 2012-01-16 19:40:40

回答

0

首先,我會看this,並確保您的系統已配置爲允許遠程訪問。其次,用戶名「U-NAME」實際上是「U-NAME @ localhost」,並且將具有如此設置的權限。例如,考慮以下GRANT語句。

GRANT SELECT * 
    ON foo.bar 
    TO 'U-NAME'@'localhost' 

用戶名「U-NAME」有權從數據庫foo,表格欄中選擇條目,但它僅限於localhost訪問。爲了允許遠程訪問,您必須授予與以下內容類似的權限。

GRANT SELECT * 
    ON foo.bar 
    TO 'U-NAME'@'xx.xx.xx.xx' 
相關問題