首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将MySQL远程数据库表插入本地数据库表?

如何将MySQL远程数据库表插入本地数据库表?
EN

Stack Overflow用户
提问于 2016-11-03 09:16:27
回答 3查看 5.6K关注 0票数 2

远程服务器数据库(IP: 192.168.1.19)

数据库名称:RemoteDB 表名-相对较高的标准-比较:RemoteTable

本地服务器数据库(IP: 192.168.1.35)

数据库名称:LocalDB 表名-相对较高的标准-比较:LocalTable

MySQL查询

代码语言:javascript
复制
INSERT INTO LocalDB.LocalTable SELECT * FROM RemoteDB.RemoteTable

但是,由于不同的数据库连接,这个查询没有执行。

如何从本地服务器(IP: 192.168.1.35)执行此查询?或者任何linux shell命令?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-03 09:24:51

代码语言:javascript
复制
mysqldump -uRemoteusername -pRemotepassword -h192.168.1.19 RemoteDB RemoteTable  --set-gtid-purged=OFF  | mysql -h192.168.1.35 -uLocalname -pLocalpassword   LocalDB
票数 3
EN

Stack Overflow用户

发布于 2016-11-04 17:50:05

我将CronJob的批准答案转换为CronJob脚本,如下所示-

配置:

代码语言:javascript
复制
$remoteDbUser   = '***';
$remoteDbPass   = '***';
$remoteDbHost   = '192.168.1.19';
$remoteDb       = 'RemoteDB';
#$remoteDbTable = '';
$localDbHost    = '192.168.1.35';
$localDbUser    = '***';
$localDbPass    = '***';
$localDb        = 'LocalDB';

同步功能:

代码语言:javascript
复制
/*Passing `$remoteDbTable` name as function argument, Because I have many Remote DB table to synchronize with my Local DB table*/
function RemoteDbSynchronze($remoteDbTable='RemoteTable'){
  global $remoteDbUser,
    $remoteDbPass,
    $remoteDbHost,
    $remoteDb,
    $localDbHost,
    $localDbUser,
    $localDbPass,
    $localDb;
  $sql = sprintf(
    "mysqldump -u%s -p%s -h%s %s %s  --set-gtid-purged=OFF  | mysql -h%s -u%s -p%s %s",
    $remoteDbUser,
    $remoteDbPass,
    $remoteDbHost,
    $remoteDb,
    $remoteDbTable,
    $localDbHost,
    $localDbUser,
    $localDbPass,
    $localDb
  );
  shell_exec($sql);
}

从Cron脚本调用函数:

代码语言:javascript
复制
RemoteDbSynchronze('RemoteTable');
RemoteDbSynchronze('AnotherRemoteTable1');
RemoteDbSynchronze('AnotherRemoteTable2');
..........................................
RemoteDbSynchronze('AnotherRemoteTableN');

关于斯普林特exec克隆的更多详细信息

票数 3
EN

Stack Overflow用户

发布于 2016-11-03 10:55:26

您的问题是使用php从不同的数据库中插入数据,不是吗?

如果你想同步它们,你可以读这个如何使两个MySQL数据库保持同步?

使用php从多个db插入db很简单

代码语言:javascript
复制
$conn1= mysqli_connect($host1,$user1,$pass1);
mysqli_select_db($db1,$conn1);
$conn2= mysqli_connect($host2,$user2,$pass2);
mysqli_select_db($db2,$conn2);

$query=mysql_query("SELECT id,name from tbl_user", $conn1)
while ($row = mysqli_fetch_row($query))
 {
    mysqli_query("insert into tbl_user (id,name) values ('".$row[0]."', '".$row[1]."',$conn2);
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40397675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档