Mysql中使用FEDERATED 存储引擎建立Db-link数据库远程访问

FEDERATED 存储引擎描述

FEDERATED存储引擎能让你访问远程的MySQL数据库而不使用replication或cluster技术(类似于Oracle的dblink),使用FEDERATED存储引擎的表,本地只存储表的结构信息,数据都存放在远程数据库上,查询时通过建表时指定的连接符去获取远程库的数据返回到本地。

 

测试在Mysql Federated引擎中访问NodeA数据库 ,需确保Mysql Federated服务器能访问到NodeA服务器3306端口

1、访问NodeA服务器  show engines; 查看FEDERATED是否为YES,如果为YES可忽略第2步

 

2、修改NodeA服务器mysql.cnf配置文件;vim /etc/my.cnf 在第一行添加federated,重启数据库service mysqld restart

 

3、在NodeA服务器创建一个数据库新用户,用于远程访问

create user 'fed'@'%' identified by 'fed_test';  --创建一个用户名为fed密码为fed_test的用户如果提示密码过于简单,执行set global validate_password_policy=0;

set global validate_password_length=1;

grant all on employees.* to 'fed'@'%';   --授予创建的fed用户访问employees数据库所有表的权限

4、 在Mysql Federated服务器中 show engines; 查看FEDERATED是否为YES,如果为YES可忽略第5步

5、修改Mysql Federate服务器mysql.cnf配置文件;vim /etc/my.cnf 在第一行添加federated,重启数据库service mysqld restart;同第2步;

6、Mysql Federate服务器test库访问NodeA服务器test库,也可以用Mysql Federate服务器其他库访问NodeA服务器test库;在Mysql Federate服务器创建一个表用于访问NodeA服务器;表名可以与NodeA服务器中的表名不同。

7、测试在Mysql Federate服务器中AA10访问到NodeA服务器中的AA10表;

CREATE TABLE `aa10`  (

  `id` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'id',

  `aaa100` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '代码',

  `aaa101` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '显示名',

  `aaa102` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '字段名称',

  `aaa103` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述',

  PRIMARY KEY (`aaa100`, `aaa102`) USING BTREE

) ENGINE=federated DEFAULT CHARSET=utf8mb4

connection='mysql://fed:fed_test@8.12.25.156:3306/test/aa10';   

特别注意 ENGINE=federated ,一定要这样写

connection语法:
scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name

 

8、在Mysql Fede服务器中访问AA10表,测试内容是否跟NodeA服务器中的AA10表数据是否一致。

本文参考https://www.cnblogs.com/zhenxing/p/5336624.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值