当前位置: 首页 > 知识库问答 >
问题:

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

苏伟志
2023-03-14

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

数据库名称:remotedb

表名 · · · · · · :remotetable

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

数据库名称:localdb

表名 · · · · · · :localtable

MySQL查询

INSERT INTO LocalDB.LocalTable SELECT * FROM RemoteDB.RemoteTable

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

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

共有2个答案

盛承
2023-03-14

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

配置:

$remoteDbUser   = '***';
$remoteDbPass   = '***';
$remoteDbHost   = '192.168.1.19';
$remoteDb       = 'RemoteDB';
#$remoteDbTable = '';
$localDbHost    = '192.168.1.35';
$localDbUser    = '***';
$localDbPass    = '***';
$localDb        = 'LocalDB';

同步功能:

/*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脚本调用函数:

RemoteDbSynchronze('RemoteTable');
RemoteDbSynchronze('AnotherRemoteTable1');
RemoteDbSynchronze('AnotherRemoteTable2');
..........................................
RemoteDbSynchronze('AnotherRemoteTableN');

有关sprintf、shell_exec和Cron的更多详细信息

曾飞沉
2023-03-14
mysqldump -uRemoteusername -pRemotepassword -h192.168.1.19 RemoteDB RemoteTable  --set-gtid-purged=OFF  | mysql -h192.168.1.35 -uLocalname -pLocalpassword   LocalDB
 类似资料:
  • 问题内容: 我想在我的MySQL数据库中插入整数188和90,但以下代码不起作用: 为什么不起作用? 问题答案: 编辑 为我工作: 在MySQL表;

  • 问题内容: 嗨,我正在尝试将json数组插入我的MySQL数据库。我从我的iPhone传递数据,我已经将数据转换为json格式,并使用未插入服务器的url将数据传递到服务器。 这是我的json数据。 [{“ name”:“ 0”,“ phone”:“ dsf”,“ city”:“ sdfsdf”,“ email”:“ dsf”},{“ name”:“ 13123123”,“ phone”:“ sd

  • 我的本地机器中有一个MySQL数据库(在XAMPP中),我使用phpMyAdmin访问该数据库。我也有一个网站托管在GoDaddy上。我通常保持脱机状态,并对数据库中存储的数据进行更改。 我想知道如何能够自动复制本地数据库中的更改到GoDaddy的服务器中的更改,或者可以使用单击按钮进行复制。 我看到了一些关于复制的答案,但我无法将数据从本地机器复制到GoDaddy的服务器。 提前谢谢!

  • 问题内容: 从Python脚本向MySQL插入一些数据时,出现一个奇怪的错误。这基本上与我要插入的变量为空有关。我认为MySQL不喜欢空白变量,但是还有其他我可以将其更改为可以与我的insert语句一起使用的东西吗? 我可以成功地使用一条语句将其设置为0(如果为空),但这可能会弄乱我计划稍后在MySQL中进行的某些数据分析。有没有办法将其转换为或某种方式,以便MySQL接受但不添加任何内容? 问题

  • 问题内容: 通讯: 但是我想通过Ajax将我的电子邮件插入数据库。我不希望页面被重定向,因为每次刷新页面时,都会将空值插入数据库。 我只希望我的电子邮件通过Ajax插入数据库,然后再发送电子邮件,即 应该消失,并且应该有“您已成功订阅”行。 任何简短的代码将非常有用..预先感谢您:) 问题答案: 尝试这个: 和在 不要使用已弃用的。 实际上,如果您的问题是将空值插入数据库,则尝试此操作,这里不需要

  • 本文向大家介绍Android 将数据插入数据库,包括了Android 将数据插入数据库的使用技巧和注意事项,需要的朋友参考一下 示例