查看federated引擎是否安装

mysql>show engines;

可以看出服务器当前并未安装federated引擎

安装federated引擎

mysql> install plugin federated soname ‘ha_federated.so’;

查看本地数据库是否开启federated引擎

mysql>show engines;

  • 此处可以看到federated引擎已经开启(本地开启过了,实际情况初次安装是未开启状态)
  • 如果没有开启
  • windows操作系统:在my.ini配置文件中添加“federated”
  • linux操作系统:vi /etc/my.cnf,加入一行federated,保存并退出

重启mysql服务

mysql>service mysqld restart

再次查看(已经开启):mysql>show engines;

使用federated建表语句实现数据库映射

此处需要注意的一点,映射表的操作会同时对a库–b库建立映射关系的表同步操作,两表数据完全一直。如需对某库的表操作权限设置,请创建操作用户授权时授对应权限。

语法

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:表名

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

例:

create table `user` (  
  `id` int(11) not null,  
  `name` varchar(30) not null,  
  `age` int(11) not null,  
  primary key (`id`)  
) engine=federated    
connection='mysql://newuser:newuser(123456)@127.0.0.1:3306/test_a/user';