PHP PDO将远程主机更改为本地主机名

时间:2012-10-08 02:51:49

标签: php mysql pdo

我正在尝试使用PDO连接到远程mysql服务器。但是,无论我在dsn中提供的主机名或IP地址如何,当脚本运行时,它总是将地址恢复为运行Web服务器的本地服务器的主机名。

Google建议这可能与SELinux和apach连接到远程数据库的能力有关,但我已禁用SELinux。

Distro:Ubuntu 11.04 x64

Apache版本:2.2.17

PHP版本:带有Suhosin-Patch(cli)的PHP 5.3.5-1ubuntu7.11

编辑:

根据要求添加了代码。虽然我不相信这是我的编码问题,因为它在本地服务器上工作正常,但不允许远程连接。

public function db_connect($driver, $dbhost, $dbname, $user, $pass) {
    $dsn = $driver . ':host=' . $dbhost . ';dbname=' . $dbname;
    try {
        $this->DB = new PDO($dsn, $user, $pass);
    }
    catch (PDOException $err) {
        print 'Database Connection Failed: ' . $err->getMessage();
        die();
    }
}

$remote_db = new DB('mysql', 'remote_server.domain.tld', 'database_name', 'user_name', 'password');

这是我收到的错误消息。

  

数据库连接失败:SQLSTATE [28000] [1045]用户'user_name'@'local_server.domain.tld'的访问被拒绝(使用密码:是)

1 个答案:

答案 0 :(得分:1)

该错误并不是说您已与local_server.domain.tld相关联,而只是声明您正在连接来自。该错误必须与您的GRANT或其他身份验证问题有关。