【问题标题】:I want to access another server database in PHP我想用 PHP 访问另一个服务器数据库
【发布时间】:2013-10-10 13:23:57
【问题描述】:

我真的是 PHP 和 Mysql 的初学者。我在 静态 IP 192.168.1.211 上创建了一个基于 CentOS(仅命令提示符) 的数据库,并且在这个 IP 上没有像 easyPHP 这样的其他软件,我正在工作基于 Windows 7静态 IP 192.168.1.20。我还安装了 easyPHPDreamweaver... 使用 Dreamweaver 我制作了一个 .php 文件并尝试使用位于 192.168.1.20 上的数据库>..

使用下面的代码

<?php
    $server2 = '192.168.1.211';
    $con = mysqli_connect(server2,'root','password','vvani');
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
?>

但我收到如下所示的错误

Notice: Use of undefined constant server2 - assumed 'server2' in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\test\welcome.php on line 4

Warning: mysqli_connect(): php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\test\welcome.php on line 4

Warning: mysqli_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\test\welcome.php on line 4
Failed to connect to MySQL: php_network_getaddresses: getaddrinfo failed: No such host is known.

如何在 PHP 代码中从 192.168.1.20 访问 192.168.1.211 上的数据库?

我也努力从 Google 那里找到解决方案,但我没有得到完美的解决方案。

【问题讨论】:

  • 您缺少 $ 符号
  • Use of undefined constant server2 .错误阅读技巧与了解语言语法一样重要

标签: php mysql mysqli


【解决方案1】:

只需阅读错误并纠正它..

<?php
$server2 = '192.168.1.211';
$con = mysqli_connect($server2,'root','password','vvani'); // here, $server2 is variable, not constant
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

【讨论】:

  • 这提醒您程序中的每个字符都很重要。编程中没有“足够接近”。
  • 谢谢@Elon Than,我用$server2 代替server2 但问题没有解决,我收到警告Warning: mysqli_connect(): (HY000/1130): Host '192.168.1.20' is not allowed to connect to this MySQL server in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\test\welcome.php on line 4 这个错误是远程访问错误,我解决了这个问题使用以下代码时出错 mysql&gt; GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password'; 再次感谢。
【解决方案2】:

server2 更改为$server2。如果这仍然不起作用,则可能是另一台服务器不允许以这种方式请求,因此您必须更新该服务器上的 MySQL 设置以允许外部访问端口(或以其他方式转发)。

【讨论】:

    【解决方案3】:

    感谢Elon ThanExplosion Pills

    我将server2 更改为$server2,但收到新警告

    Warning: mysqli_connect(): (HY000/1130): Host '192.168.1.20' is not allowed to connect to this MySQL server in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\test\welcome.php on line 4
    

    我对此进行了研究,并尝试远程访问另一台服务器上的数据库。

    按照几个步骤解决问题。

    # mysql -u root -p
    mysql> GRANT ALL ON Database.* TO <un>@'localhost' IDENTIFIED BY 'password';
    

    再次感谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 2019-10-10
      • 2017-10-31
      相关资源
      最近更新 更多