我想同时连接到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 失败:名称或服务未知
实现我同时连接两台服务器的目标的正确方法是什么?
答案 0 :(得分:0)
这看起来是一种不正确的方法。您应该在这两台服务器之间创建Replication。
如果在主服务器中插入数据,它将自动反映在从服务器中。
答案 1 :(得分:0)
错误消息表明找不到数据库服务器。这意味着IP地址(您用于远程服务器的真实地址)不正确,或者远程服务器上的DB配置文件不正确。我猜,但如果IP地址是正确的,那么看看:
remote_server://application/config/database.php
确保将服务器指定为“localhost”而不是其他内容。