我想(在我的辦公室在這裏)連接我的PHP應用程序,我的數據庫是在我的家鄉,公用IP地址作爲我的mysql_connect在主機名()
mysql_connect('119.92.59.55','root','lester1992')
,但他們不互相通信(我的辦公室終端),可能是什麼問題?
這裏是我遇到的錯誤。
mysql_connect():連接嘗試失敗,因爲連接方在一段時間後沒有正確響應,或者由於連接的主機未能響應而建立連接失敗。
在此先感謝。
我想(在我的辦公室在這裏)連接我的PHP應用程序,我的數據庫是在我的家鄉,公用IP地址作爲我的mysql_connect在主機名()
mysql_connect('119.92.59.55','root','lester1992')
,但他們不互相通信(我的辦公室終端),可能是什麼問題?
這裏是我遇到的錯誤。
mysql_connect():連接嘗試失敗,因爲連接方在一段時間後沒有正確響應,或者由於連接的主機未能響應而建立連接失敗。
在此先感謝。
您需要在mysql中授予訪問權限才能從遠程主機訪問。
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'your_office_ip_address'
IDENTIFIED BY 'newpassword';
如果是因爲有用戶權限,錯誤會說: – AlexKey
noooo。永遠不要這麼做!在所有可用的媒體 – bansi
更改'%'爲'your_office_ip_address':) – SajithNair
要連接到MySQL數據庫,三兩件事必須滿足:
默認情況下,root
被配置爲允許從連接主機名只有localhost
。您可以編輯表mysql.user
並將root
的Host
更改爲%
以允許來自任何對等方的連接。
UPDATE mysql.user SET Host = '%' WHERE User = 'root';
不要忘記,以使其立即生效,該更改後運行FLUSH PRIVILEGES
。
此外,您的防火牆和路由器必須配置爲可以連接到端口3306。您可以使用在線測試工具(如this one)來檢查您的端口3306是否可到達。
默認情況下,mysql不允許你的用戶使用你的IP。
你想允許類似如下的命令訪問(請記住,這是非常不安全的):
GRANT ALL PRIVILEGES
ON database.*
TO 'root'@'119.92.59.55'
IDENTIFIED BY 'lester1992';
如果你不想打開你的數據庫的所有IP的,那麼你應該分配權限到具體的ip。
GRANT ALL PRIVILEGES ON db.* TO 'user'@'your_office_ip' IDENTIFIED BY 'newpassword';
注意:您可以通過以下鏈接獲得您的辦公室IP,它會告訴你當前的IP:
http://stackoverflow.com/questions/16287559/mysql-adding用戶爲遠程訪問 將有所幫助 – Girish
數據庫是否可以通過公共互聯網實際訪問?端口是否打開並正確轉發?其實,人們會希望他們不是。把MySQL服務器放在公共互聯網上是一個壞主意,除非你真的知道你在做什麼並且已經非常安全地設置了所有的東西。 – deceze
在mysql中,認證是基於主機的。你應該給辦公電腦許可。 – bansi