我在000webhost.com上设置了一个MySQL数据库。我想通过PHP访问我的数据库中的数据。我试过了:
<?php
include("connect.php");
mysql_select_db("XXXXXXX_users", $con) or die(mysql_error());
$result = mysql_query("SELECT * FROM data ORDER BY id DESC");
while($row = mysql_fetch_array($result))
{
$id = $row['id'];
$user = $row['usrname'];
}
echo "$user";
?>
但它始终返回:“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应。”
我该怎么办?
答案 0 :(得分:3)
在调试此类事情时,最好先确保可以使用命令行mysql工具进行连接,以排除与PHP本身相关的问题。
$ mysql -u myuser -h mysql.example.com -p
您还会收到更具描述性的错误消息,例如: ERROR 1045 (28000): Access denied for user 'root'@'remote.example.com' (using password: YES)
如果mysql端口甚至在公共接口上打开(这通常是一个糟糕的想法),mysql本身就有自己的访问控制层,基于连接主机。您可能需要使用通配符主机名创建一个帐户,如下所示:
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
@'%'
部分,特别允许从任何主机,本地或远程连接。
一旦您可以从命令行成功连接,那么将命令行参数复制为mysql_connect()
答案 1 :(得分:1)
很多(如果不是全部?)托管服务提供商限制对mysql数据库的远程访问。这意味着您只能通过localhost连接。托管服务提供商上可能有一个mysql配置部分,允许您配置某个用户可以从中连接的IP地址。祝你好运。
答案 2 :(得分:0)
大多数主机都没有远程访问MySQL服务器,因为它存在安全风险,您是否可以尝试另一个允许远程访问的免费MySQL服务器,试试this但它有点慢。