Php 我的代码仅连接到本地主机mysql服务器,但不用于远程服务器

Php 我的代码仅连接到本地主机mysql服务器,但不用于远程服务器,php,mysql,Php,Mysql,尝试连接到远程Mysql服务器时,出现以下错误: php\u network\u getaddress:getaddrinfo失败:Hôte inconnu.(翻译:主机未知) con.php: <?php $db_host = 'http://xxx.xxx.xxx.xxx'; $db_username = 'xxx'; $db_password = 'xxx'; $db_name = 'xxx'; $con = mysql_connect($db

尝试连接到远程Mysql服务器时,出现以下错误:

php\u network\u getaddress:getaddrinfo失败:Hôte inconnu.
(翻译:
主机未知

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);

?>


当连接到本地主机时,一切正常,但对于远程连接,它不工作。

$db\u host='xxx.xxx.xxx'取而代之

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

更进一步,HTTP(web服务)=80 Mysql(您的数据库)=3306只是要注意,正如BenM所提到的,这是默认端口。在大多数情况下,这并没有改变。但是,您可以将其端口更改为任何其他端口(就像您可以使用任何其他服务一样)

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

看看如何设置PDO

编辑1

正如你在benM的回复中提到的,“无法建立连接,因为目标机器主动拒绝。”

因此,现在如果你在数据库所在的实际服务器上拥有root访问权限,那么你必须检查服务器(在我的例子中是ubuntu服务器)

运行以下命令:

sudo netstat -pan | grep mysql
还要看一看这张图片:它几乎显示了TCP端口,无论它是否正在侦听(这里是侦听)


同样,这是假设您拥有实际linux/(任何服务器)的root访问权限。我只精通ubuntu,但也可以在其他服务器信息方面为您提供帮助

无法使用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
之外的任何对用户帐户的访问。确保您使用的用户能够从任何域访问数据库


最后,
mysql.*
函数系列现在已经被弃用,您应该避免在新代码中使用它们。相反,请检查或。

您无法通过HTTP连接到MySQL。删除协议,并确保用户有权访问所有域。MySQL不一定在
3306
上运行。它们将被弃用,而不是贬值;)据我所知(这是有限的),数据库服务器正在侦听端口3306上的请求。如果我不正确,你能详细说明一下吗?
3306
是MySQL的默认端口,但它可以配置为使用不同的端口。(掌心)-Lol,当然可以,但在这种情况下(使用此OP),我们都可以得出结论,他或她目前正在使用3306作为端口地址。但是,是的,您是正确的。现在我收到此错误
无法建立连接,因为目标计算机主动拒绝连接。
我正在使用root登录,并且它拥有所有权限。您必须检查数据库所在的计算机是否允许传入流量到该端口。2) 如果您所连接的用户具有使用这些表/数据库的权限,并且还允许从该端口传出流量。@RixhersAjazi,thx对于您的回答,它是关于允许根用户从任何域连接:
mysql>将**上的所有特权授予“根”@“%”,由带有授予选项的“密码”标识