我的代码只连接到localhost mysql服务器,但不能连接到远程服务器

the*_*oot 0 php mysql

当尝试连接到远程Mysql服务器时,我收到此错误:

php_network_getaddresses: getaddrinfo failed: Hôte inconnu.(译:Host unknown).

con.php:

<?php 
  $db_host     = 'http://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);

?>
Run Code Online (Sandbox Code Playgroud)

连接到localhost时一切正常,但是对于远程连接,它不起作用.

Rix*_*azi 5

$db_host = 'xxx.xxx.xxx.xxx'; 代替

您不能使用协议HTTP for Mysql,因为它们都在不同的端口上运行/使用不同的协议.

更多HTTP(Web服务)= 80 Mysql(您的数据库)= 3306只是为了注意BenM提到的这是默认端口.在大多数情况下,这没有改变.但是,您将其端口更改为任何其他端口(就像您可以使用任何其他服务).

此外,请查看PDO,因为Mysql_函数将被弃用,并且在新系统和旧系统中使用也很危险.

看看关于如何设置PDO的一个答案

编辑1

正如你在benM在评论中回答的那样,"没有联系,因为目标机器主动拒绝它."

所以现在如果您在实际服务器上拥有root访问权限,那么您必须检查服务器(我的情况下的示例是ubuntu服务器)

运行此命令:

sudo netstat -pan | grep mysql
Run Code Online (Sandbox Code Playgroud)

另外看看这张图片:它显示了TCP端口,如果它正在收听或不收录(这里正在收听)

在此输入图像描述

再次假设您具有对实际linux /(无论服务器)的root访问权限,我只熟悉ubuntu,但也可以帮助您处理其他服务器信息.