我想知道當我實例化一個新的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。
它沒有連接到計算機,'用戶@ ip'是連接用戶的IP,所以它應該是您的計算機的IP 。問題在別的地方。 – serakfalcon
不,「10.0.0.5」是客戶端IP,而不是服務器IP。該消息指出'10.0.0.5'處的用戶'user'不允許以'10.0.0.4'訪問服務器。 –
您可能會遇到此錯誤,因爲您從您的DSN中省略了'dbname'參數 – Phil