2014-07-21 46 views
0

我想知道當我實例化一個新的PDO對象時,它仍然使用服務器的本地IP。PHP PDO連接到遠程服務器連接到本地服務器而不是

<?php 

$dsn = 'mysql:host=10.0.0.4;charset=utf8'; 
$username = 'user'; 
$password = 'pass'; 

$pdo = new PDO($dsn, $username, $password); 

?> 

它給了我這個奇怪的錯誤。

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'user'@'10.0.0.5'
(using password: YES)' in /var/www/html/mysql_test.php:7
Stack trace:
#0 /var/www/html/mysql_test.php(7): PDO->__construct('mysql:host=10.0...', 'user', 'pass')
#1 {main}
thrown in /var/www/html/mysql_test.php on line 7

我注意到它連接到10.0.0.5這是本地服務器的IP地址。遠程服務器(10.0.0.4)啓用遠程訪問。

是否有我應該配置的PDO的內部配置文件?當前的PHP和PDO版本分別爲5.5.15RC1和5.5.38。

+0

它沒有連接到計算機,'用戶@ ip'是連接用戶的IP,所以它應該是您的計算機的IP 。問題在別的地方。 – serakfalcon

+6

不,「10.0.0.5」是客戶端IP,而不是服務器IP。該消息指出'10.0.0.5'處的用戶'user'不允許以'10.0.0.4'訪問服務器。 –

+0

您可能會遇到此錯誤,因爲您從您的DSN中省略了'dbname'參數 – Phil

回答

-3

試試這個:

$dbh = new PDO('mysql:host=localhost;dbname=databasename', $username, $password); 

更多細節可在這裏:http://php.net/manual/en/pdo.connections.php

+0

對不起,但你的答案沒有意義! –