Plummer
Plummer

Reputation: 6688

mysqli_connect to remote server

I'm trying to connect to a remote server. I think the problem is with the port number, but when I try error reporting, I'm not getting any information.

$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";
}

First, I'm not 100% confident that's the correct port. How do I find out what port mysql is set to use?

Second, mysqli_connect_error() isn't giving me anything. No number, codes, nothing. The test page just spits back Connect Error: with out as much as a code I can go look up.

Upvotes: 7

Views: 34584

Answers (2)

Liyosi
Liyosi

Reputation: 609

If you can connect using mysql cli client:

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

Then, it means the httpd process doesn't have permissions to make external network connections. You can enable this by:

sudo setsebool -P httpd_can_network_connect 1

Upvotes: 3

Plummer
Plummer

Reputation: 6688

Solution was to add a port argument to the mysqli_connect function.

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

Upvotes: 16

Related Questions