【问题标题】:Sync 2 tables of different databases - MySQL同步 2 个不同数据库的表 - MySQL
【发布时间】:2011-10-30 01:08:39
【问题描述】:

我在数据库表中有一个包含某些医疗信息的表。我每天抓取和解析它们并将其存储在我本地数据库的那个表中。

假设最初有 1500 条记录,今天在我的本地机器上又添加了 100 条记录。

现在,我有一个服务器,我需要在其中推送这些记录(因此数据库不同)。我昨天复制了数据库。因此,服务器数据库表现在有 1500 个条目。如何将新的 100 个条目同步到实时应用程序?

请注意,我无法从本地计算机中删除旧条目,否则它将被一次又一次地抓取。

【问题讨论】:

    标签: mysql replication sync


    【解决方案1】:

    您可能想要使用“SELECT ... INTO OUTFILE”和“LOAD DATA INFILE INTO TABLE”命令。

    编辑:详细说明...

    给定表结构:

    CREATE TABLE my_local_table (
        id int NOT NULL auto_increment PRIMARY KEY,
        data varchar(20),
        created_on datetime);
    
    CREATE TABLE server_table (
        id int NOT NULL auto_increment PRIMARY KEY,
        data varchar(20),
        created_on datetime,
        local_id int);
    

    还有一些虚假数据:

    INSERT INTO my_local_table (data, created_on) VALUES ('test', now()), ('test2', now());
    

    您将使用以下命令:

    SELECT id, data, created_on 
        FROM my_local_table
        WHERE created_on >= '2011-08-18'
        INTO OUTFILE '/tmp/t.txt';
    
    -- (and on the server)
    LOAD DATA LOCAL INFILE '/tmp/t.txt'
        INTO TABLE server_table
        (local_id, data, created_on);
    

    要自动执行这两个操作,您可以使用 bash 脚本/批处理文件调用 mysql,首先使用第一条语句连接到本地服务器,然后执行第二条语句连接到远程服务器。

    mysql -e 'SELECT....';
    mysql -h remote_server -e 'LOAD DATA...';
    

    【讨论】:

    • 您能否详细说明 SQL 查询以更具体,以及如何使流程自动化?
    • 两个数据库都在同一个服务器中..他们已经在数据库 A 中有 tbl A1, tbl A2, tbl A3 .... 而在 DB B 中有 tbl B1, tbl B2, tbl B3
    【解决方案2】:

    您想在服务器和本地计算机之间设置复制 - 请参阅reference documentation 了解详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多