一、Windows环境
1.查看当前federated引擎是否开启
使用navicat连接mysql之后,F6键打开命令行界面,输入指令:show engines;
2.开启federated引擎
①mysql -uroot -proot 连接mysql
②查看mysql的安装目录和数据存放路径
③找到mysql的数据存放路径,会找到相应的my.ini文件,如果找到之后叫其他的名字,可以改名为my.ini,打开my.ini文件在其中加上federated
3.重启mysql服务
①快捷键win+X+G打开计算机管理,找到mysql的服务,将mysql的服务停掉之后再启动
4.再次使用show engines;命令查看federated引擎是否开启
二、Linux环境
1.连接mysql,使用命令show engines;查看引擎是否开启
2.使用命令whereis my.cnf查看配置文件的位置(我的在/etc/my.cnf)
3.使用命令vim /etc/my.cnf编辑配置文件
4.配置文件中加上federated
5.使用命令service mysqld restart重启mysql服务
6.再次使用命令show engines;查看是否开启成功CREATE TABLE `t_dictionary` (
`id` varchar(22) NOT NULL,
`operator` varchar(20) DEFAULT NULL COMMENT '操作人',
`is_delete` tinyint(2) DEFAULT NULL COMMENT '是否删除',
`dictionary_code` varchar(20) DEFAULT NULL COMMENT '字典code',
`dictionary_name` varchar(20) DEFAULT NULL COMMENT '字典类型名称',
`timespan` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间戳',
PRIMARY KEY (`id`),
KEY `FK_9wjh2c0vbqiu5qdgnhay8t9le` (`dictionary_type_id`) USING BTREE
) ENGINE=FEDERATED
CONNECTION='mysql://admin:admin@192.168.22.10:3306/itoo/t_dictionary';
其中创建的表结构要和服务器上的一模一样,ENGINE为FEDERATED,CONNECTION中的admin:admin表示服务器的用户名:密码,itoo是服务器上的数据库名称,t_dictionary是服务器上的表名称,执行完之后,在本地库中将看到t_dictionary表已经映射过来了。
测试
在服务器上将这张映射的表修改一条数据,会发现本地库中这张映射过来的表数据同时改变了!到此基本可以确定这样远程映射表是成功了!我将代码中的数据库地址修改为我本地,执行某个接口的查询操作,成功查询回正确的结果,标明远程映射表成功!