通过PHP访问远程数据库MySQL


Access remote database MySQL via PHP

我在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服务器允许远程访问,试试这个,但它有点慢