2013-08-16 64 views
0

如何使用IP地址連接到我的遠程數據庫?我有這樣的代碼,但evetime我打開我的網站,我得到一個錯誤無法連接到MySQL:無法連接到MySQL服務器「xxx.xx.xxx.xx:80」PHP - 使用IP地址遠程連接數據庫

define ('DB_USER', 'user'); 
define ('DB_PASSWORD', 'password'); 
define ('DB_HOST', 'xxx.xx.xxx.xx:80'); 
define ('DB_NAME', 'databaseName'); 
$dbc=mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) 
    OR die ('Could not connect to MySQL: '.mysql_error()); @mysql_select_db (DB_NAME) 
    OR die ('Could not select the database" '.mysql_error());; 
+2

端口3306怎麼樣? –

+0

通常,端口80用於Web服務器。 – DannyThunder

+0

謝謝我將嘗試使用端口3306 – user2658838

回答

2

嘗試使用3306端口相反:

define ('DB_HOST', 'xxx.xx.xxx.xx:3306'); 

端口3306是默認的MySQL端口,而端口80是HTTP。

+0

當我加載我的網站時,出現服務器錯誤。 – user2658838

2

數據庫服務器必須可用於遠程訪問。由於通常的MySQL服務器沒有加密,並且通常會讓整個互聯網可用的服務器更具安全性問題,所以任何託管mysql服務器通常只能從本地網絡獲得(如果有的話)。

如果您可以從外部訪問數據庫服務器,請諮詢您的託管公司。

之後答案是肯定的,你還必須知道MySQL中的用戶帳號不僅僅是用戶名/密碼,還包含一個「源IP」組件(可以是通配符「*」,但通常不是) ,所以還有另一層保護只允許專用IP地址訪問。你有一個動態的IP?這可能是另一個需要解決的問題。

+0

我正在使用靜態..我的路由器的IP ..然後路由到端口3306 – user2658838

+0

然後將其路由到我的遠程數據庫所在的PC。 – user2658838

+0

你是說你的設置比你說的更復雜?鏈中有一些NAT設備可能會影響事情。你沒有對你正在使用的accound IP設置說些什麼。 – Sven

0

如果使用3306端口,像其他回答說,還是不給你的連接,你可以嘗試兩件事情:

看着你/etc/mysql/my.cnf。你可能會發現這樣的一條線:

bind-address   = 127.0.0.1 

通過在前面加一個「#」來註釋它。 如果仍然沒有幫助,請檢查您嘗試連接的用戶是否允許從所有主機連接。

哦,還有一件事:不要使用PHP的mysql庫。改爲使用PDO或mysqli,因爲mysql庫已被棄用。

+0

PS我使用xampp..where能找到/etc/mysql/my.cnf嗎? – user2658838

+0

在命令行中鍵入'mysql --help',在輸出塊中有一段文本說明使用哪個配置文件。通常,它是'c:\ xampp \ mysql \ bin \ my.ini'。 – ciruvan

+0

謝謝。 bind-address = 127.0.0.1已經被默認註釋掉了。我將嘗試PDO或mysqli – user2658838

-1

嘗試使用默認端口號:3306

+0

當我加載我的網站時出現服務器錯誤 – user2658838

+0

你會得到什麼錯誤? –

+0

無法連接到MySQL:主機'xxx.xxx.xxx.hostingprod.com'不允許連接到此MySQL服務器 – user2658838