在实际工作中,我们可能会遇到需要操作其他数据库的部分表,但又不想系统连接多库。此时我们就需要用到数据表映射。Mysql自带的FEDERATED引擎完美的帮我们解决了该问题。
开启dederated引擎:
1.windows环境:my.ini文件[mysqld]中加入一行:federated
2.linux环境:my.cnf文件[mysqld]中加入一行:federated
重启mysql服务,用show engines命令查看是否已经开启支持。
语法:
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:创建的表名和远程访问的表名可以不同。
授权:
grant 授权类型(select,update,insert,delete“,”分隔) on 库名 to 用户名@"%" identified by "密码";
授权后,使用 flush privileges命令刷新一下。
参考链接:https://www.2cto.com/database/201412/358397.html
https://blog.youkuaiyun.com/qq_33578833/article/details/80177115