我真的是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上的数据库?
我也努力寻找谷歌的解决方案,但我没有得到完美的解决方案。
答案 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';
再次感谢。