0

第一次尝试连接到与我的站点不在同一主机上的数据库并且运气不佳。数据库位于 Godaddy 主机上,我已将其配置为允许远程访问:

$dbc = mysqli_connect($db_host,$db_user,$db_pass,$db_name);

if (!$dbc) {
    die('Connect Error: ' . mysqli_connect_error());
}

我在页面上得到以下信息:

警告:mysqli_connect() [function.mysqli-connect]: [2002] 第 3 行 'path' 中的连接超时(尝试通过 'mydbhostname:3306 连接)

警告:mysqli_connect() [function.mysqli-connect]: (HY000/2002): Connection timed out in 'path' on line 3

连接错误:连接超时

我需要在我的最后寻找什么或脚本中可能导致这种情况的东西?

编辑:好吧,当我使用 mysql 时,似乎一切正常,但不是 mysqli ...并且在服务器上启用了 mysqli。

4

3 回答 3

1

我在 Digitalocean Ubuntu 14.04 服务器上遇到了同样的问题,其中防火墙配置是罪魁祸首。ufw 防火墙规则不允许 Mysql 在端口 3306 上使用。

解决方案:

$ sudo ufw status
$ sudo ufw allow mysql
$ sudo ufw reload
于 2016-03-28T11:44:44.800 回答
0

确保您为数据库插入了正确的主机名,在这里您可以看到如何在 Godaddy 主机上执行此操作:

于 2012-11-27T03:25:07.870 回答
-1

我不明白 mysqli 和 mysql 之间的区别,但我在 GoDaddy 上发现使用:

mysqli_connect 不起作用。mysql_connect 确实有效。

尝试使用以下示例代码来查看是否可以连接到需要至少一个表中的数据的数据库:

<?php
//Variables for connecting to your database.
//These variable values come from your hosting account.
$hostname = "XXXXXXX.db.XXXXXXXX.hostedresource.com";
$username = "XXXXXXX";
$dbname = "XXXXXXX";

//These variable values need to be changed by you before deploying
$password = "XXXXXXX";
$usertable = "XXXXXXX";
$yourfield = "XXXXXXX";

//Connecting to your database
mysql_connect($hostname, $username, $password) OR DIE ("Unable to
connect to database! Please try again later.");
mysql_select_db($dbname);

//Fetching from your database table.
$query = "SELECT * FROM $usertable";
$result = mysql_query($query);

if ($result) {
    while($row = mysql_fetch_array($result)) {
        $name = $row["$yourfield"];
        echo "<h2>some data</h2>";
        echo "$name<br>";
    }
}
?>
于 2014-08-31T00:33:28.080 回答