我在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";
?>
但是它总是返回:"连接尝试失败,因为被连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机未能响应。"
我该怎么办?
- 我没有root权限
- 我正在尝试在Apache上运行脚本
在调试这类事情时,最好确保您可以首先使用命令行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()
的简单问题
很多(如果不是全部?)托管提供商限制远程访问mysql数据库。这意味着您只能通过本地主机进行连接。在主机提供商上可能有一个mysql配置部分,允许你配置一个ip地址,从这个ip地址可以连接到某个用户。好运。
大多数主机不提供远程访问MySQL服务器的安全风险,也许你应该尝试其他免费的MySQL服务器允许远程访问,试试这个,但它有点慢