我真的是PHP和Mysql的初学者。我在静态 IP 192.168.1.211 上创建了一个基于 CentOS(仅命令提示符(的数据库,在此 IP 上没有其他软件,如 easyPHP,我正在基于 Windows 7 的静态 IP 192.168.1.20 上工作。我还安装了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 上的数据库?
我也努力从谷歌找到解决方案,但我没有得到一个完美的解决方案。
只需阅读错误并更正它。
<?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';
再次感谢。