方案一:使用触发器同步

优点: 工作效率和开发效率上有很大的提高

缺点: 增加数据库服务器的开销

具体需求

sakila数据库中的user_test表数据,同步到test库的user_test表,以及world库的user_test表

具体实现

使用三个不同数据库做测试:

1、sakila库中的user_test表

windows 下 mysql多实例 mysql多个库一个实例中_数据库

2、test库中的user_test表

windows 下 mysql多实例 mysql多个库一个实例中_windows 下 mysql多实例_02

3、world库中的user_test表

windows 下 mysql多实例 mysql多个库一个实例中_windows 下 mysql多实例_03

一、使用sql命令创建触发器

1:在数据库sakila中创建insert触发器
use sakila;
mysql> delimiter $$
mysql> create trigger insert_trigger after insert on user_test for each row
 -> BEGIN
 ->		insert into test.user_test(id,username_test) VALUES (new.id,new.username_test);
 ->		insert into world.user_test(id,username_test) VALUES (new.id,new.username_test);
 -> end $$
2:在数据库sakila中创建update触发器
use sakila;
mysql> delimiter $$
mysql> create trigger update_trigger after update on user_test for each row
 -> begin
 ->		update test.user_test set username_test = new.username_test where id = new.id;
 ->		update world.user_test set username_test = new.username_test where id = new.id;
 ->	end $$

二、使用navicat创建触发器(推荐,可视化创建,方便不容易出错)

insert_trigger

windows 下 mysql多实例 mysql多个库一个实例中_mysql_04

BEGIN
		insert into test.user_test(id, username_test) VALUES (new.id, new.username_test);
		insert into world.user_test(id, username_test) VALUES (new.id,new.username_test);
END
update_trigger

windows 下 mysql多实例 mysql多个库一个实例中_触发器_05

begin
	update test.user_test set username_test = new.username_test where id = new.id;
	update world.user_test set username_test = new.username_test where id = new.id;
end

方案二:还没想