连接到不同服务器上的多个数据库

时间:2018-05-17 11:33:19

标签: php mysqli

我想同时连接到localhost和远程服务器。 目标是在INSERT正在同步两个服务器上的数据 在本地服务器上完成,它也在远程服务器上的类似表上完成。

远程服务器由ip地址给出,我们称之为“12.345.678.999”。

在我的数据库配置文件中,我有类似这样的内容:

<?php

// for local server

$DB_NAME = 'dbname1'; 
$DB_HOST = 'localhost';
$DB_USER = 'dbuser1'; 
$DB_PASS = 'dbpass1';  

$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);

if (mysqli_connect_errno()) 
{
    printf("Database connection failed: %s\n", mysqli_connect_error());
    exit();
}

// for remote server

$DB_NAME2 = 'dbname2'; 
$DB_HOST2 = '12.345.678.999';
$DB_USER2 = 'dbuser2'; 
$DB_PASS2 = 'dbpass2';


$mysqli2 = new mysqli($DB_HOST2, $DB_USER2, $DB_PASS2, $DB_NAME2);

if (mysqli_connect_errno()) {
printf("Database connection failed: %s\n", mysqli_connect_error());
exit();
}


?>

所以我在我的脚本中使用两个不同的mysqli对象来运行本地和远程服务器的查询。

加载本地站点时,出现以下错误:

  

数据库连接失败:php_network_getaddresses:getaddrinfo   失败:名称或服务未知

实现我同时连接两台服务器的目标的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

这看起来是一种不正确的方法。您应该在这两台服务器之间创建Replication

如果在主服务器中插入数据,它将自动反映在从服务器中。

答案 1 :(得分:0)

错误消息表明找不到数据库服务器。这意味着IP地址(您用于远程服务器的真实地址)不正确,或者远程服务器上的DB配置文件不正确。我猜,但如果IP地址是正确的,那么看看:

remote_server://application/config/database.php

确保将服务器指定为“localhost”而不是其他内容。