Mysql使用FEDERATED引擎实现数据表映射主从同步

1、进入 mysql命令行,没有看到Federated,说明没有安装
show engines;
Mysql使用FEDERATED引擎实现数据表映射主从同步_第1张图片
image
2、安装Federated
install plugin federated soname 'ha_federated.so';
image
3、查看有了Federated,但是是NO,说明没有开启
Mysql使用FEDERATED引擎实现数据表映射主从同步_第2张图片
image
4、vi /etc/my.cnf,加入一行federated,保存并退出
Mysql使用FEDERATED引擎实现数据表映射主从同步_第3张图片
image
5、重启mysql服务
service mysqld restart
Mysql使用FEDERATED引擎实现数据表映射主从同步_第4张图片
image
6、再次查看,已经是yes
show engines;
Mysql使用FEDERATED引擎实现数据表映射主从同步_第5张图片
image
7、使用FEDERATED建表语句实现数据库映射
注意一:

映射表的操作会同时对A库–B库建立映射关系的表同步操作,两表数据完全一直。如需对某库的表操作权限设置,请创建操作用户授权时授对应权限。

注意二:

创建表时字段的值不要出现中文。比如 COMMENT字段标注备注时,否则报错

注意三:

远程连接的数据库密码组合中不要出现@字符,否则报错

注意四:

如果表结构中参数含有中文值时,要记得设置表的字符,否则会乱码

PS:创建的表名和远程访问的表名可以不同。

- 语法

CREATE TABLE (......) ENGINE =FEDERATED CONNECTION='mysql://[name]:[pass]@[location]:[port]/[db-name]/[table-name]' 

name--mysql用户名

pass--mysql密码

location--ip

port:端口号

db-name:数据库名

table-name:表名

 
举个栗子:
CREATE TABLE `agent_grade_default` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`grade` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '',
`delimiter_min` bigint(20) unsigned NOT NULL COMMENT '',
`delimiter_max` bigint(20) unsigned NOT NULL COMMENT '',
`rate` double(8,4) NOT NULL COMMENT '',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
)ENGINE =FEDERATED CHARSET=utf8 CONNECTION='mysql://root:[email protected]:3306/databases/tables' ;

你可能感兴趣的:(Mysql使用FEDERATED引擎实现数据表映射主从同步)