mysqli_connect():( HY000 / 2002):连接在主机上超时

时间:2017-02-05 12:19:55

标签: php mysql hosting

我正在尝试使用php连接mysql数据库。但它在本地计算机上运行良好,但在网上托管时却没有出现错误 mysqli_connect():( HY000 / 2002):连接超时

<?php

$link = mysqli_connect('sql6.freesqldatabase.com','user_name','password','database_name');
if(mysqli_connect_error())
    die("couldn't connect to database");
?>

6 个答案:

答案 0 :(得分:2)

您的MySQL服务器可能未配置为接受您尝试访问的主机的请求。

检查服务器的配置。 既然你说本地机器可以访问它,请检查你允许的位置,并对在线主机的ip做同样的事情。

答案 1 :(得分:0)

如果您的网站和MySQL数据库托管在不同的服务器上,请确保您在连接字符串中提到了正确的MySQL主机名(可解析)。

如果您指定了正确的用户名,则很可能您的MySQL服务器不允许从您站点所在的Web服务器进行远程MySQL连接。 请联系您的Web托管服务提供商以获取确切的MySQL主机名,并允许您的Web服务器IP地址用于远程MySQL连接。

答案 2 :(得分:0)

就我而言,AWS防火墙阻止了我的Web服务器。

  

将Web服务器IP地址添加到已修复的防火墙例外中   这对我来说。

答案 3 :(得分:0)

我认为您必须将托管服务器的IP地址白名单到数据库服务器。

因此您的数据库服务器将接受来自托管服务器的请求。

答案 4 :(得分:0)

还要指定连接字符串的端口(3306?)。

答案 5 :(得分:0)

主机中可能有防火墙阻止了对 MySQL 服务器的请求。就我而言,添加防火墙规则对我有帮助。

Ubuntu

允许一台设备访问MySQL服务器,

sudo ufw allow from remote_IP_address to any port 3306

要允许任何设备连接到 MySQL 服务器,

sudo ufw allow 3306

成功了!