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

时间:2013-10-10 13:23:57

标签: php mysql mysqli

我真的是PHP和Mysql的初学者。我在静态IP 192.168.1.211 上创建了一个基于 CentOS(仅命令提示符)的数据库,在这个IP上没有像easyPHP这样的其他软件,我正在工作在静态IP 192.168.1.20 基于 Windows 7 。我还安装了 easyPHP Dreamweaver ...使用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上的数据库?

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

3 个答案:

答案 0 :(得分:4)

只需阅读错误并更正错误。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

感谢 Elon Than Explosion 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';

再次感谢。