mysql定时同步两个不同连接数据库其中一张表
可以使用MySQL的事件(event)来实现定时同步两个不同连接数据库中的一张表。
首先需要在两个数据库中都创建一个相同的表,例如表名为table_name。
然后在需要进行同步的数据库中创建一个事件,如下所示:
CREATE EVENT sync_table_name
ON SCHEDULE EVERY 1 HOUR
DO
BEGIN
-- 连接第二个数据库
USE database_name_2;
-- 删除第二个数据库中的旧数据
DELETE FROM table_name;
-- 查询第一个数据库中的数据并插入到第二个数据库中
INSERT INTO table_name SELECT * FROM database_name_1.table_name;
END;
上述事件表示每小时执行一次,连接第二个数据库并删除其中的旧数据,然后查询第一个数据库中的数据并插入到第二个数据库中的table_name表中。
需要注意的是,在两个不同的数据库中连接的方式可能不同,需要根据实际情况进行修改。
另外,需要将MySQL的事件调度器(event scheduler)打开,使用以下命令打开:
SET GLOBAL event_scheduler = ON;
如果不想打开全局事件调度器,也可以在创建事件时加上DEFINER选项,如下所示:
CREATE DEFINER = 'root'@'localhost' EVENT sync_table_name
ON SCHEDULE EVERY 1 HOUR
...
上述定义了事件的DEFINER为root@localhost,即只有root用户登录到localhost才能执行该事件
原文地址: https://www.cveoy.top/t/topic/g9oZ 著作权归作者所有。请勿转载和采集!