尝试连接到远程Mysql服务器时出现此错误:
php_network_getaddresses: getaddrinfo failed: Hôte inconnu.
(翻译:{{1}})。
con.php:
Host unknown
连接到localhost时一切正常,但是对于远程连接,它不起作用。
答案 0 :(得分:5)
$db_host = 'xxx.xxx.xxx.xxx';
相反
你不能使用协议HTTP for Mysql,因为它们都运行在不同的端口/使用不同的协议。
更多HTTP(Web服务)= 80 Mysql(您的数据库)= 3306只是为了注意BenM提到的这是默认端口。在大多数情况下,这没有改变。但是,您将其端口更改为任何其他端口(就像您可以使用任何其他服务)。
此外,请查看PDO,因为Mysql_函数将被弃用,并且在新系统和旧系统中使用也很危险。
查看at one of my answers如何设置PDO
编辑1
正如你在评论中提到benM的回答,“由于目标机器主动拒绝它,因此无法建立连接。”
所以现在如果您在实际服务器上拥有root访问权限,那么您必须检查服务器(我的情况下的示例是ubuntu服务器)
运行此命令:
sudo netstat -pan | grep mysql
另外看一下这张图片:它显示了TCP端口,如果它正在收听或不收录(这里正在收听)
再次假设您具有对实际linux /(无论服务器)的root访问权限,我只熟悉ubuntu,但也可以帮助您处理其他服务器信息。
答案 1 :(得分:4)
您无法使用HTTP协议连接到MySQL(即由于端口冲突)。参数应该是IP字符串。删除http
协议,如下所示:
$db_host = 'xxx.xxx.xxx.xxx';
$db_username = 'xxx';
$db_password = 'xxx';
$db_name = 'xxx';
$con = mysql_connect($db_host, $db_username, $db_password);
$select_db = mysql_select_db($db_name, $con);
您还应该注意,MySQL可以配置为阻止除localhost
访问用户帐户以外的任何内容。确保您使用的用户能够从任何域访问数据库。