【发布时间】:2021-07-11 14:08:02
【问题描述】:
我可以使用地址 host:port 访问远程 Mysql 数据库。
使用Mysql客户端(DBeaver)访问数据库服务器效果很好。
我正在尝试使用 PHP 连接到同一个数据库服务器。
<?php
$host = "xxx.xxx.xxx.xxx:3333";
$port = 3306;
$user = "user";
$password = "password";
$dbname = "db01";
$conn = new mysqli($host, $user, $password, $dbname, $port);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
路由器使用3333端口进行端口转发,以便从外部访问服务器。
我明白了:
Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2005): Unknown MySQL server host
'xxx.xxx.xxx.xxx:3333' (25)
是否有可能我们不能在 mysqli 的 $host 条目中使用“host:port”?
我必须使用没有端口的 IP 地址吗?
【问题讨论】:
-
SO 是 3333 还是 3306 哪个端口?
-
关闭
$host = "xxx.xxx.xxx.xxx:3333";的端口,所以删除3333。然后,如果端口是3333,请将其放在变量$port或您想访问的任何端口中 -
“92.35.184.250:3333”不是IP地址,是IP地址和端口号。
-
我认为您需要像@RiggsFolly 所说的那样删除 3333。删除它并将 3333 放在 $port 变量上后它是否工作?
-
但是你说3306和dbeaver一起工作?您是从网络内部使用它吗?无论如何,在这种情况下,正如其他人所说,您需要在 mysqli 命令的单独端口选项中指定 3333,而不是作为 IP 的一部分