SQLSTATE [HY000] [2002]访问远程数据库时连接超时,日志显示尝试连接

时间:2018-08-14 18:31:52

标签: php mysql

我目前正在编写一个Web服务,该服务将接收POST请求并将数据写入到托管在其他服务器上的数据库中。在同一服务器上的数据库上运行脚本时,脚本的行为符合预期。但是,一旦它尝试访问远程数据库,连接就会因该错误而超时。

我已经阅读了很多有关配置MySQL以允许远程根连接的答案,但是我们已经从任何主机上创建了具有所有特权的用户。

MySQL数据库的服务器日志显示,尽管创建了密码,但我们创建的用户试图访问数据库,但未使用密码。我目前无法访问核心MySQL文件。

即使服务器日志显示尝试连接数据库,root远程访问或防火墙是否仍然存在问题?

这是抛出错误的PHP函数:

function webservice_db_connect() {
    try {
        global $db_servername, $db_username, $db_password, $db_name, $db_port;
        $db = new PDO("mysql:host=$db_servername;dbname=$db_name;port=$db_port", $db_username, $db_password);
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $db;
    } catch(PDOException $error) {
        exit('Connection failed: '. $error->getMessage());
    }
}

最终结果:

Connection failed: SQLSTATE[HY000] [2002] Connection timed out 

1 个答案:

答案 0 :(得分:1)

我将首先尝试从mysql客户端登录到远程mySQL服务器:

mysql -h your.remoteserver.com -p 3345 -u yourusername -p yourpassword

尝试使用不同的用户名以成功建立连接。

您是否重新加载了远程mySQL数据库上的特权?