Federated引擎类似oracle的DBLINK的功能。可以基于这个特性对分布式的数据库做一些应用
Federated引擎是基于表级别的,只能将本地数据表定义为 Federated 引擎并映射至远程实体表,无法实现基于库级别的整体映射。映射表必须要设置为federated,实体表不需要。
其原理使用标准的 MySQL 客户端协议与远程数据库建立 TCP 连接。
需要注意本地的表结构必须与远程的完全一样。该引擎不支持事务,不支持表结构修改。
1.MYSQL命令行,查看FEDERATED引擎是否开启,默认是不开启
>show engines;
2.如果没有开启
配置my.cnf
[mysqld]
Federated
3.重启MYSQL服务器
Service mysqld restart
4.简单使用
mysql> show create table test1;
| test1 | CREATE TABLE `test1` (
`id` int(11) DEFAULT NULL,
`name` varchar(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
确保两边表一致,更改ENGINE 和 connection。
Connection格式是 mysql://usrname:[email protected]:port/DBname/tablename
CREATE TABLE `test1` (
`id` int(11) DEFAULT NULL,
`name` varchar(30) DEFAULT NULL
) ENGINE=federated connection="mysql://root:[email protected]:3306/test/test1";
然后可以测试,在一端做insert或者delete,select看到的数据完全一致