2009-09-03 32 views
1

我得到這個,每次我用mysql_connect()函數不管我選擇什麼樣的數據庫:的mysql_connect並不一定主機上工作

警告:mysql_connect()函數[function.mysql-CONNECT]:無法連接到在filename.php關於「IP」(111)的MySQL服務器上線17 發生了MySQL錯誤:無法連接到MySQL服務器「IP」(111)

完全相同的文件適用於我的個人網站精細。我已經嘗試了多個託管在不同服務器上的數據庫,並且它始終提供輸出。

數據庫本身託管在同一臺服務器上,但在使用的mysql_connect其全IP()。使用本地主機:端口不工作,因爲它說:

警告:mysql_connect()[function.mysql連接]:無法通過套接字'/ var/run/mysqld/mysqld連接到本地MySQL服務器。襪子」(2)在filename.php線路17 發生了MySQL錯誤:無法通過套接字連接到本地MySQL服務器‘/var/run/mysqld/mysqld.sock’(2)

但使用IP應該像它通過託管在其他服務器上的相同文件調用它一樣工作。

這是代碼:

 
    $connect = mysql_connect($db_url,$db_user,$db_pass); // connects 
    if ($connect == false) exit("A MySQL error has occurred: " . mysql_error());

現在,因爲該文件適用於其他服務器我猜它是什麼,用它做的是,可能需要一些改變了服務器。我個人沒有root權限訪問服務器(只是我的共享主機的一部分)。有什麼我可以做我php,編輯php.ini文件或我應該傳遞給有權訪問的人?

編輯:好事實證明,該服務器不能訪問外部數據庫,所以這就是爲什麼IP沒有工作。感謝您的所有答案,但我們已決定只更改託管提供商。我們需要能夠訪問外部數據庫。

+0

什麼是$ db_url?這是字面上的「IP」?你必須改變它。 – Havenard 2009-09-03 01:41:49

+0

$ db_url包含的IP地址和端口只是「IP:port」,爲什麼我必須更改它?它適用於我所有其他的網絡主機。 – 2009-09-03 01:45:28

+0

你爲什麼要指定一個端口號?您是否在非標準端口上運行? – 2009-09-03 01:49:39

回答

1

這是一個託管服務?檢查他們的文檔,會有東西告訴你在哪裏可以找到mysql。它不一定是localhost

例如,在startlogic.com,您可以使用:YOURDOMAIN.startlogicmysql.com

+0

它不是一個真正的託管服務,所以他們沒有文檔,更像是使用某人的服務器的一部分的聚集。 localhost不起作用,但我可以直接使用IP從另一臺服務器連接到數據庫。它不一定是本地主機。我剛剛測試過,因爲它無法連接到IP地址。 – 2009-09-03 02:02:33

0

別的東西去嘗試:使用 '127.0.0.1',而不是 '本地主機'。在mysql愚蠢地認爲它可以默默地將'localhost:'更改爲'/var/run/mysqld/mysqld.sock'之前,我遇到了一些問題。

+0

這是我在網上發現的嘗試和幫助,但遺憾的是老一樣的事情之一: 警告:mysql_connect()[function.mysql-connect]:無法連接到'127.0.0.1'(13)上的MySQL服務器,在第17行的filename.php中 發生了MySQL錯誤:無法連接到'127.0.0.1'(13)上的MySQL服務器(13) – 2009-09-03 01:58:33

1

您可以連接並用mysqladmin使用相同的主機,用戶名和密碼?

mysqladmin -h $db_url -u $db_user -p $db_pass 

用實際值替換$ db_xxxx。 如果這是從你的PHP腳本的同一主機工作,然後sudo到Apache用戶,並嘗試相同的測試。其中一個必須失敗。

編輯:請不要介意在sudo的一部分,我注意到,你沒有root權限。

+0

不幸的是,我沒有直接訪問服務器來做到這一點。我只是由他們託管。但是我會盡可能地通過這個。 – 2009-09-03 02:06:28

0

你的措辭不是很清楚,我希望你是不是以爲你可以從只是因爲你知道的IP地址和端口號的任何舊的Web服務器連接到同一個MySQL服務器。如果網絡主機完全勝任,他們可能有防火牆的mysql,所以只能通過自己的網絡服務器訪問。

+0

我知道我很抱歉的措辭,我花了一段時間試圖想想如何更好地說:/ 我知道,但這個MySQL數據庫是故意打開,以便它可以被另一個服務器。這就是爲什麼我可以將同一個文件上傳到另一個Web主機並連接到同一個數據庫。所以我可以從外部源訪問數據庫,但不能在同一主機上使用php。 – 2009-09-03 02:14:11

相關問題