MySql远程访问数据库

时间:2014-06-17 05:25:55

标签: mysql

我有两个DB服务器,比如Server-1& Server-2,我已经安装了MySql yog,服务器可以相互连接,因为我已经为服务器提供了Grant权限。

但是,我需要构建一个可以从多个服务器中提取数据的查询,例如 -

从Server1.db.Table1,Server2.db.Table2

中选择*

这在mysql中是否可行,如果是的话,请你帮助我实现同样的目标。

谢谢

1 个答案:

答案 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;

我相信你可以根据你的要求转换上面的例子。