6

我正在尝试连接到远程服务器。我认为问题出在端口号上,但是当我尝试错误报告时,我没有得到任何信息。

$db_host        = 'MY.IP.ADD.RESS:3306';
$db_user        = 'user';
$db_pass        = 'password';
$db_database    = 'database'; 

$link = mysqli_connect($db_host,$db_user,$db_pass,$db_database) or die('Unable to establish a NHT_DB connection');


if (!$link) {
    die('Connect Error: ' . mysqli_connect_error());
}
else {
    echo 'Success... ' . mysqli_get_host_info($link) . "\n";
}

首先,我不是 100% 确信这是正确的端口。如何找出mysql设置使用的端口?

第二,mysqli_connect_error()不给我任何东西。没有数字,代码,什么都没有。测试页面只是吐出Connect Error:尽可能多的代码,我可以去查找。

4

2 回答 2

13

解决方案是向 mysqli_connect 函数添加一个端口参数。

$db_host        = 'MY.IP.ADD.RESS';
$db_user        = 'user';
$db_pass        = 'password';
$db_database    = 'database'; 
$db_port        = '3306';

$link = mysqli_connect($db_host,$db_user,$db_pass,$db_database,$db_port);
于 2013-11-19T17:35:05.920 回答
3

如果您可以使用 mysql cli 客户端进行连接:

 mysql -u db_user -h db_host -p -P 3306 db_name

然后,这意味着 httpd 进程没有建立外部网络连接的权限。您可以通过以下方式启用此功能:

sudo setsebool -P httpd_can_network_connect 1
于 2020-02-25T16:49:23.483 回答