我想访问 PHP 中的另一个服务器数据库


I want to access another server database in PHP

我真的是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 上的数据库?

我也努力从谷歌找到解决方案,但我没有得到一个完美的解决方案。

只需阅读错误并更正它。

<?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();
}

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

感谢埃隆·比爆炸药

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';

再次感谢。

相关文章: