mysql - 如何将表从一台服务器更新到另一台服务器?

标签 mysql select insert-update

我需要从一台服务器更新到另一台服务器,并且只能访问下面的代码。 我想知道错误在哪里。

如果分离代码完美的话。

<?PHP
$db_host1     = "10.0.0.101";
$db_user1     = "dns";
$db_password1 = "123456";
$db_name1     = "dns";
$db_connect1  = mysqli_connect($db_host1, $db_user1, $db_password1, $db_name1);
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$db_host2     = "10.0.0.102";
$db_user2     = "dns";
$db_password2 = "123456";
$db_name2     = "dns";
$db_connect2  = mysqli_connect($db_host2, $db_user2, $db_password2, $db_name2);
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysqli_query($db_connect2,"UPDATE ipserver SET ipsserver = ($db_connect1,"SELECT ipsserver FROM ipserver WHERE idserver = '11'") WHERE idserver = '11'");

mysqli_close($db_connect1);
mysqli_close($db_connect2);
?>

感谢@Jon Dinham 帮助我解决问题

我将把已经更正的脚本放上

<?PHP
$db_host1     = "10.0.0.101";
$db_user1     = "dns";
$db_password1 = "123456";
$db_name1     = "dns";
$db_connect1  = mysqli_connect($db_host1, $db_user1, $db_password1, $db_name1);
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$db_host2     = "10.0.0.102";
$db_user2     = "dns";
$db_password2 = "123456";
$db_name2     = "dns";
$db_connect2  = mysqli_connect($db_host2, $db_user2, $db_password2, $db_name2);
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query(
$db_connect1,
"SELECT ipsserver FROM ipserver WHERE idserver='11'"
);

$rows = mysqli_fetch_array($result,MYSQLI_NUM);

foreach ($rows as $index=>$row) {
$ipsserver = $row;

mysqli_query(
$db_connect2,
"UPDATE ipserver SET ipsserver='$ipsserver' WHERE idserver='11'"
);
}

mysqli_close($db_connect1);
mysqli_close($db_connect2);
?>

最佳答案

您应该设置 MySQL 复制(主/从)并仅在主数据库上执行查询。请参阅文档:http://dev.mysql.com/doc/refman/5.1/en/replication-howto.html

对于仅 1 次查询,替换行:

mysqli_query($db_connect2,"UPDATE ipserver SET ipsserver = ($db_connect1,"SELECT ipsserver FROM ipserver WHERE idserver = '11'") WHERE idserver = '11'");

使用此代码:

$result = mysqli_query(
  $db_connect1,
  "SELECT ipsserver FROM ipserver WHERE idserver='11'"
);

while ($row=$result->fetch_assoc()) {
  $ipsserver = $row["ipsserver"];

  mysqli_query(
    $db_connect2,
    "UPDATE ipserver SET ipsserver='$ipsserver' WHERE idserver='11'"
  );
}

关于mysql - 如何将表从一台服务器更新到另一台服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25497503/

相关文章:

mysql - 在 2 个表中选择匹配的字符串

sql - 在 oracle 的 join select 查询中将某些列名称别名为一个字段

sql - SQLSTATE [23000] : Integrity constraint violation: 1048 Column 'status_member' cannot be null

mongodb - 如果违反唯一索引,Mongo 会更新

php - 在 MySQL 中搜索多个单词

mysql - 条件 SQL 选择 : when select has a value select all but the smallest date

PHP使用函数查找学生记录

Oracle 选择 NCLOB 类似于某个字符串的位置

php - mySQL - 使用 JOIN 或嵌套 SELECT(子选择)进行选择?

mysql - 更新错误 - 主键值相同