2012-08-15 230 views
0

我剛寫完一個在我的本地服務器(xampp)上運行良好的網站。 以下是我的本地服務器連接的數據庫定義:將MySQL從本地主機移動到遠程服務器

<?php 
    $host="localhost"; 
    $username="root"; 
    $password="1234"; 
    $db_name="partnership"; 

    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB"); 
?> 

我已經成功地加載我的文件,並把它們在遠程服務器上(www.mydomain.com),我已經創建了相關的數據庫「夥伴關係「(成功地將所有表從phpMySQL本地服務器導入遠程服務器)。

我可以查看網站(www.mydomain.com),但沒有連接到數據庫(MySQL)。 錯誤信息當然是「無法連接」。

我已將$host="localhost"更改爲$host=」www.mydomain.com」但仍收到相同的錯誤消息。

對上述問題的任何幫助將不勝感激。

+1

您使用的是託管服務提供商,還是您所控制的服務器? – BrianS 2012-08-15 03:45:13

+2

已創建數據庫,但用戶和權限如何? – 2012-08-15 03:49:59

+0

我有一個來自Web主機服務公司的託管帳戶。 – blsn 2012-08-15 03:50:24

回答

0

如果您正在使用的cPanel,當您創建MySQL表時,請確保您的用戶分配到它(小事,我知道,但伊夫忘記了幾次,我自己)。

如果你的腳本從遠程服務器運行,只需使用localhost即可。將工作正常。

最後,我唯一的建議,直到一個更好的答案是說,請嘗試使用

$host = 'localhost'; 
$user = 'username'; // Im pretty sure your username isn't root. 
$pass = '1234'; 
$db = 'partnership'; 
/* Alot of hosts like to append your cPanel login to your db and username fields. 
Check to see what your table is. It might actually be 'youruser_partnership' */ 

$mysqli = new mysqli($host, $user , $pass, $db); 
if (mysqli_connect_error()) { 
    die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); 
} 

如果你的主機支持mysqli的(大多數人)。如果沒有,當你做死你的陳述時,仍然使用die(mysql_error());來得到確切的錯誤。它很可能是您創建並分配給您的數據庫的用戶名/密碼

+0

謝謝大家回覆我,並感謝上述解決了問題的評論(「許多主機喜歡將你的cPanel登錄追加到你的數據庫和用戶名字段中。」)。這些是現在成功連接到DB的更改: $ user ='mydomai_username'; $ db ='mydomai_partnership'; – blsn 2012-08-15 13:58:18

2

如果您嘗試通過應用程序進行連接,是否還應該使用localhost作爲$host?該腳本與數據庫位於同一臺服務器上。

+0

這是我不知道的。即什麼/如何定義$ host(主機名)。 – blsn 2012-08-15 03:52:19

+0

@user嘗試將其定義爲「127.0.0.1」。 ''localhost''並不總是出於某種原因。 – 2012-08-15 03:53:25

+0

@ user1315169:如果您使用的是PHPMyAdmin,它可以告訴您。否則,只需查看你的主機的管理面板,它應該告訴你數據庫託管在哪裏。 – 2012-08-15 03:53:38

0

啊,這一直是這個過程中最令人討厭的部分。試試這個,看看它是否工作:

$host="127.0.0.1"; // "localhost" should work, but don't count on it 
$username="user"; // username you use to log into phpMyAdmin 
$password="password"; // password you use to log into phpMyAdmin 
$db_name="dbname"; // database you want to connect to 

你需要創建了這個用戶名/密碼對,並給予他們相應的權限來訪問數據庫。另外請注意,mysql PHP函數已被棄用,不應使用。 PDO或mysqli是未來的首選。

+0

是的,使用PDO,好多了。 – NewInTheBusiness 2012-08-15 03:58:04

+0

我的本地服務器上的phpMyAdmin總是要求登錄(用戶名和密碼)。 在我的遠程服務器上,我可以訪問沒有「歡迎使用phpMyAdmin」屏幕的數據庫。 (沒有登錄過程輸入數據庫,但我已經創建了用戶名和密碼)。 它是否與上述連接問題有關? – blsn 2012-08-15 04:18:57

相關問題