1、进入 mysql
命令行,没有看到Federated
,说明没有安装
show engines;
image
2、安装Federated
install plugin federated soname 'ha_federated.so';
image
3、查看有了Federated
,但是是NO
,说明没有开启
image
4、vi /etc/my.cnf
,加入一行federated
,保存并退出
image
5、重启mysql服务
service mysqld restart
image
6、再次查看,已经是yes
了
show engines;
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:123456@127.0.0.1:3306/databases/tables' ;
网友评论