通过PHP访问远程数据库MySQL

时间:2011-04-09 01:47:17

标签: php mysql

我在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上运行脚本

3 个答案:

答案 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但它有点慢。