2017-08-29 51 views
1

晚上好指定的主機,PHP MySQL的PDO - 不使用的DSN

我一直在試圖在具有在我的配置文件中的兩個數據庫連接,奮鬥一個是內部,另一種是外部的。

$DB_host = '127.0.0.1'; 
$DB_port = '3306'; 
$DB_name = 'users'; 
$DB_user = 'root'; 
$DB_pass = 'obliquous'; 

$DB2_host = '123.123.123.123'; 
$DB2_port = '3306'; 
$DB2_name = 'pancakeshop'; 
$DB2_user = 'potato_shop'; 
$DB2_pass = 'ambiguous'; 

try 
{ 
    $db = new PDO("mysql:host={$DB_host};dbname={$DB_name}",$DB_user,$DB_pass); 
    $db2 = new PDO("mysql:host={$DB2_host};dbname={$DB2_name}",$DB2_user,$DB2_pass); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $db2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch(PDOException $e) 
{ 
    echo $e->getMessage(); 
    die(); 
} 

一個我已經與127.0.0.1做 - 這意味着本地主機我的專用服務器指定的 - 它的工作如預期,雖然,在一個有123.123.123.123它使用本地IP地址,而不是外部的。

185.113.141.125是PHP服務器運行的專用服務器。

它正在給我的錯誤是以下幾點:

SQLSTATE [HY000] [1045]訪問被拒絕的用戶 'potato_shop'@'185.113.141.125'(使用密碼:YES)

代碼語法有什麼問題嗎?

+0

* * <「這是使用本地IP地址,而不是外部的一個與123.123.123.123的一個」 - 錯誤消息不**沒有**表示這一點 – Phil

+0

fixed @Pil我指的是專用服務器的IP地址。 –

+0

我仍然沒有看到任何你提出的建議'$ db2'連接使用本地IP。你能否正確地澄清**你想要做什麼,你期望看到什麼以及你實際看到了什麼?並且不要使用像*「dedicatedServerIP」*這樣的詞。顯示錯誤信息。如果你不得不混淆像IP地址這樣的細節,**在你的示例代碼中進行相同的修改** – Phil

回答

1

這是因爲root accounts is only for the localhost host(至少在windows中)。

更簡單,如果你只是創建權限權限的用戶pancakeshop

CREATE USER 'not_root'@'123.123.123.123' IDENTIFIED BY 'ambiguous'; 

GRANT ALL PRIVILEGES ON pancakeshop.* To 'not_root'@'123.123.123.123' IDENTIFIED BY 'ambiguous'; 
FLUSH PRIVILEGES; 
+0

讓我有另一件事......它不是一個根帳戶,只是一個不好的例子。 –

+0

@JoãoRodrigues好吧,讓我知道如果這有效。 –

+0

這一直不工作。 –