同步2个不同数据库的表 - MySQL

时间:2011-08-18 18:26:40

标签: mysql replication sync

我在数据库表中有一张包含某些医疗信息的表格。我爬行&每天解析它们并将其存储在我本地数据库的表中。

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

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

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

2 个答案:

答案 0 :(得分:4)

您可能想要使用'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...';

答案 1 :(得分:0)

您希望在服务器和本地计算机之间设置复制 - 有关详细信息,请参阅reference documentation