我正在尝试使用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");
?>
答案 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
成功了!