Mysql使用FEDERATED引擎实现数据表映射

Mysql使用FEDERATED引擎实现数据表映射

说明

在实际工作中,我们可能会遇到需要操作其他数据库的部分表,但又不想系统连接多库。此时我们就需要用到数据表映射。Mysql自带的FEDERATED引擎完美的帮我们解决了该问题。让我们一起来开启FEDERATED引擎实现数据表映射之路

开启Federated引擎
  • 查看启Federated引擎是否安装
    mysql>show engines;
    image
    可以看出服务器当前并未安装Federated引擎
  • 安装Federated引擎
    mysql> install plugin federated soname ‘ha_federated.so’;
    image
  • 查看本地数据库是否开启FEDERATED引擎
    mysql>show engines;
    image
    此处可以看到FEDERATED引擎已经开启(本地开启过了,实际情况初次安装是未开启状态)
  • 如果没有开启
    • Windows操作系统:在my.ini配置文件中添加“federated”
    • Linux操作系统:vi /etc/my.cnf,加入一行federated,保存并退出
      image
    • 重启mysql服务
      • mysql>service mysqld restart
        image
    • 再次查看(已经开启):mysql>show engines;
      image
使用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';
附录:mysql创建账号/密码及授权
  • 创建用户和密码(请创建在被映射的数据库服务器上)
mysql>CREATE USER newuser IDENTIFIED BY 'NewUser(123456)';
mysql>create user newuser identified by 'NewUser(123456)';
  • 授权
mysql>grant select on dbname.* to newuser@"%" identified by "NewUser(123456)"; 
mysql>grant select,update on dbname.table_name to newuser@"%" identified by "NewUser(123456)"; 
mysql>grant select,update,insert,delete on dbname.table_name to newuser@"%" identified by "XiDian(123456)"; 
- mysql>grant 授权类型(select,update,insert,delete“,”分隔) on 库名 to 用户名@"%" identified by "密码";

- mysql授权后,mysql>FLUSH PRIVILEGES;刷新一下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值