2011-09-16 71 views
0

我有一個用戶名爲'test'@'111.11.11.111'(例如)。通過php連接到mysql數據庫使用非本地用戶

當我打電話

mysql_connect('localhost', //mysql is hosted locally (as far as php is concerned) 
       'test', //user is test 
       'password');//test's password 

它會自動嘗試登錄 '測試' @ 'localhost' 的。嘗試使用[email protected]作爲用戶名結果[email protected]@localhost嘗試登錄。

我可以告訴php或mysql登錄'test'@'111.11.11.111'嗎?

編輯:mysql服務器託管在本地主機上(從php的角度來看)。承載mysql數據庫的服務器的IP不是111.11.11.111。用戶從IP地址登錄到MySQL服務器111.11.11.111

+0

是用戶名[email protected]還是這種格式的東西?或者用戶名是test並且在IP 111.11.11.111的機器上安裝了mysql?你能再澄清一下你的問題嗎? –

回答

0

我不這麼認爲,設置用戶在MySQL服務器上連接的位置(在本例中爲111.11.11.111)是爲了安全。就我所知,PHP無法覆蓋該安全性。

1

您是否嘗試用111.11.11.111代替'localhost'?應該產生[email protected]

+0

我的理解是,mysql_connect的第一個參數是mysql服務器的位置,而不是用戶的位置... – Andrea

+1

這是正確的。 'localhost'只是一個預定義的字符串,它將映射到腳本運行的IP地址。 'test @ 111.11.11.111'意思是它試圖以用戶'test'連接到111.11.11.111。 '用戶'的位置是不相關的。用戶必須在運行mysql的同一臺服務器上創建。 –

+0

那麼我的問題的答案是否定的,用戶和mysql服務器必須存在於相同的位置... – Andrea

1

也許我誤解的問題,但爲什麼你就不能更改連接語句

mysql_connect('111.11.11.111','test','password'); 

+0

我的理解是,mysql_connect的第一個參數是mysql服務器的位置,而不是用戶的位置... – Andrea

+1

數據庫用戶和數據庫應位於同一臺服務器上。 – Nertim

相關問題