本文主要是介绍mysql 跨机器查询,使用dblink,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有的时候业务场景需要使用跨机器跨库查询,这时候就想到了mysql有没有类似oracle 的dblink的功能,答案当然是肯定了,下面就简单介绍在mysql 下如何使用dblink,
首先目标库需要支撑FEDERATED
安装federated插件:
mysql>install plugin federated soname ‘ha_federated.so’;
ERROR 1125 (HY000): Function ‘federated’ already exists
说明已经安装过了,但没有启用
只需要在my.cnf 下添加 federated 然后重启数据库即可:
下面就是创建dblink,
有2种方式,
方式一:
CREATE TABLE `test` (`id` int(11) DEFAULT NULL
) ENGINE=FEDERATED CONNECTION='mysql://用户名:密码@IP:端口/数据库/表名'
但有的时候我们的密码会包含一些特殊字符串,比如@,则会报错:is not in the correct format
那么这时候就想到另外一个方法:
方法二:
首先创建Federated Server
CREATE SERVER `Federated `
FOREIGN DATA WRAPPER mysql
OPTIONS (HOST 'IP地址',PORT 端口,USER '用户名',PASSWORD '密码',DATABASE '数据库'
);
接下来使用刚才创建的server 来创建dblink
CREATE TABLE `test` (`id` int(11) DEFAULT NULL
) ENGINE=FEDERATED CONNECTION ='Federated/test';
这时候就可以查询在目标端查询源端的test的表了
这篇关于mysql 跨机器查询,使用dblink的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!