我有两个DB服务器,比如Server-1& Server-2,我已经安装了MySql yog,服务器可以相互连接,因为我已经为服务器提供了Grant权限。
但是,我需要构建一个可以从多个服务器中提取数据的查询,例如 -
从Server1.db.Table1,Server2.db.Table2
中选择*这在mysql中是否可行,如果是的话,请你帮助我实现同样的目标。
谢谢
答案 0 :(得分:0)
联合存储引擎应该有助于完全满足您的要求。
按照link在服务器中启用远程表所在的联合存储引擎。
- 在Server1中:
CREATE DATABASE fed_remote_db
CREATE USER 'fed_remote_user'@'%' IDENTIFIED BY 'fed_remote_password';
GRANT ALL ON fed_remote_db.* TO 'fed_remote_user'@'%';
CREATE TABLE fed_remote_db.fed_table(id INT,NAME VARCHAR(50));
- 在Server2中:
CREATE TABLE fed_remote_db.Server1_fed_table (
id INT NOT NULL AUTO_INCREMENT,
NAME VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=FEDERATED CONNECTION='mysql://fed_remote_user:fed_remote_password@Server1_IP:3306/fed_remote_db/fed_table';
SELECT * 从 fed_remote_db.Server1_fed_table a / *记住引用远程服务器 /的Server1_fed_table表, fed_remote_db.server2_fed_table b / server2_fed_table表引用本地服务器* / WHERE a.id = b.id;
我相信你可以根据你的要求转换上面的例子。