2014-02-18 226 views
0

最近我購買了域名「domain.com」。託管公司擁有通常的CPanel來處理數據庫。連接到遠程服務器上託管的MySQL數據庫

使用「MySQL數據庫」我:

  1. 創建名爲數據庫「數據庫1」
  2. 創建了用戶的用戶名「用戶1」和密碼「PASS1」
  3. 新增用戶「 user1「到數據庫」database1「

到目前爲止這麼好。

之後,我點擊PHPMyAdmin並重定向到PHPMyAdmin網頁。在那裏我看到了我以前創建的「database1」。點擊該數據庫,我使用IMPORT導入了一個名爲「test」[columns(id,name,surname)]的非常簡單的表格。在數據庫「database1」下面導入創建的表「test」,這是正確的。

之後我試圖用下面的代碼(connect_to_db.php)連接到數據庫:

// Create connection 
$con=mysqli_connect("domain.com","user1","pass1","database1"); 

// Check connection 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error() ."<br>"; 
} 

我已上傳的connect_to_db.php/home/domain/public_html/

當我嘗試連接到數據庫1,我收到以下錯誤:

Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user 'user1'@'xxx.xxx.xxx.xxx' (using password: YES) in /home/karkoona/public_html/connect_to_db.php on line 13 

哪裏xxx.xxx.xxx.xxx爲domain.com的公網IP(如果我得到它的權利)。

而且對着陸頁的phpMyAdmin右邊,我看到:

user: [email protected] 

任何想法,爲什麼我不能用當前用戶訪問數據庫? 我的代碼中是否有任何錯誤?

謝謝。

+0

'user1'沒有權限訪問該數據庫,所以使用root用戶授予'user1'的權限 – krishna

+0

您的託管服務提供商可能有文檔連同示例連接...檢查它 – user1844933

+0

創建用戶時,您必須使用正確的「主機」字段創建它們:從用戶名「user1」,主機「%」,密碼「whatever」開始,然後按照您的方式運行 –

回答

1

您需要授予USER1使用它的IP來訪問遠程服務器訪問:

GRANT ALL PRIVILEGES ON database1.* to 'user1'@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'pass1'; 

注意:更換相關的信息,以目前的信息,例如如xxx.xxx.xxx.xxx添加到將訪問遠程MySQL的當前服務器IP。


由於您使用的cPanel,你可以做到這一點,讓IP:

  • 登錄到您的cPanel(如果尚未登錄)。
  • 向下滾動到數據庫部分。
  • 單擊遠程MySQL圖標。
  • 輸入將進行遠程連接的計算機的IP地址。
  • 單擊添加主機按鈕。
+0

將IP地址添加到遠程數據庫訪問主機中有訣竅!說實話,我已經嘗試過,但我用domain.com而不是IP,它沒有保存它。非常感謝! – christostsang

0

這可能是怎麼一回事,因爲:

1) User name or password you are using is wrong 
2) User may not have privillage to access the database 
0

你不能通過$ CON的連接檢查

if (mysqli_connect_errno()) 

if (mysqli_connect_errno($con)) 
0

所有你需要做的是您的服務器的IP地址添加到遠程數據庫訪問更換主機在cpanel中。它將允許訪問您的數據庫,並使用相同的方法來允許您在使用本地主機時進行訪問。但是,您只需將您的計算機IP地址添加到遠程數據庫即可。

相關問題