在实际工作中,我们可能会遇到需要操作其他数据库的部分表,但又不想系统连接多库。此时我们就需要用到数据表映射。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命令刷新一下。