【问题标题】:Connect to server database from localhost从 localhost 连接到服务器数据库
【发布时间】:2014-07-14 16:24:09
【问题描述】:

我正在尝试从 localhost 连接到服务器数据库。

$host = 'http://www.my-domain.com/phpmyadmin/';
$user = 'u5er';
$pass = 'pa55w0rd';
$db = 'db_name';

$con = mysqli_connect($host,$user,$pass,$db) or die("Error " . mysqli_error($con));
$sql = "SELECT col FROM test WHERE id = '1'";

$result = mysqli_query($con,$sql);

错误

Warning: mysqli_connect(): in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362

Warning: mysqli_connect(): in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362

Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362
Error

有办法解决吗?如何确定我的服务器是否允许外部连接?以及如何定义它应该允许从哪些 IP 地址访问数据库?

感谢您的任何建议。

编辑: 好的,我已将主机更改为 my-domain.com,现在它报告以下错误。我的 IP 无法访问 MySQL 服务器...

Warning: mysqli_connect(): (HY000/1130): Host '88.146.210.54' is not allowed to connect to this MySQL server in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 362
Failed to connect to MySQL: Host '88.146.210.54' is not allowed to connect to this MySQL server
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\xampp\htdocs\sp_concord\cenova_nabidka\page\vytvor.php on line 368

【问题讨论】:

  • 主机字符串不太可能是正确的。 phpmyadmin 不是数据库

标签: php mysql remote-access


【解决方案1】:

如果您将 localhost 文件上传到 Web 服务器,一些主机提供商,也使用“localhost”作为主机名

$host = 'localhost';
$user = 'u5er';
$pass = 'pa55w0rd';
$db = 'db_name';

“Host 'XXX.XXX.XXX' is not allowed to connect to this MySQL server”当你没有配置主机允许访问数据库时出现

【讨论】:

  • 您好,我尝试为我的 IP 地址配置对 dababase 的访问,但尚未成功。只要我有时间,我就会解决它。谢谢。
【解决方案2】:

是的,可以解决这个问题。 将变量 $host 更改为正确的主机名(localhost 或其他)。

要了解您的服务器是否允许外部连接,您可以使用online port 扫描来查看您的 mysql 端口(默认为 3306)是否对外界开放。

要定义哪些 IP 地址可以访问您的数据库,您应该使用防火墙规则。

【讨论】:

    【解决方案3】:

    您的 IP 地址必须注册到您的主机才能连接到数据库

    【讨论】:

    • “必须注册到您的主机”是什么意思?
    【解决方案4】:

    大多数外部数据库都是通过具有正确端口号的 IP 或域/子域连接到的。您已输入“http”,即端口 80。大多数 MySQL 为 3306。您的主机/极值提供商应该为您提供数据库服务器的 IP 和登录详细信息...

    【讨论】:

      【解决方案5】:

      主机字符串错误。有效的 mysql URL 的格式为“mysql://hostname.tld/database”。然而,管理员通过 Internet 提供 SQL 数据库是非常不寻常的。您很可能应该尝试从与数据库服务器相同的服务器或网络运行您的 php 应用程序。

      【讨论】:

      • 嗨,谢谢,但这是不可能的。这是本地应用程序,我需要使用来自服务器 my-domain.com 的一些数据
      【解决方案6】:

      您的日志记录有一个错误,位于以下行:

      $con = mysqli_connect($host,$user,$pass,$db) or die("Error " . mysqli_error($con));
      

      $con 从未被赋值(基本mysqli_connect 失败)并且您将其传递给mysqli_error()

      请尝试以下方法 - 它会为您提供有关您无法连接的原因所需的信息:

      $con = mysqli_connect($host,$user,$pass,$db);
      if (mysqli_connect_errno())
      {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
      

      正如用户 Dagon 所说,您的主机字符串应该类似于 my-domain.com 或更可能是 localhost 而不是 http://www.my-domain.com/phpmyadmin/

      【讨论】:

      • MySQL 数据库是否与 PHP 脚本在同一台服务器上运行?在这种情况下,您只需将主机更改为localhost 而不是my-domain.com。如果不是,您将需要配置 MySQL 以允许来自远程计算机的连接 - 请查看此处的链接:stackoverflow.com/questions/8348506/…
      • 不,不是,我会检查您的建议。谢谢。
      • Prosim :)。顺便说一句,这里有一个更好的链接:rackspace.com/knowledge_center/article/…
      猜你喜欢
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 2019-12-30
      • 1970-01-01
      相关资源
      最近更新 更多