如何在mysql中使用联合服务器实现数据集成?

问题描述 投票:0回答:1

如何使用MYSQL联合服务器在两台服务器之间进行数据集成?

mysql integration federated
1个回答
0
投票

对于这几个步骤,我们需要遵循。让我们假设有两个服务器s1和s2,我们都有公共IP和私有IP,我们只使用Linux服务器。

s1的私有IP是ps1,s2是ps2,s1的公共IP是pbs1,s2是pbs2

两个数据库是dbs1和dbs2

如果服务器不在同一个局域网上,那么我们必须使用公共IP,如果在同一个局域网中,我们可以使用其中任何一个。但是,私有IP使用更安全。

步骤1:我们需要在文件my.cnf中使用此方法在MYSQL中启用联合引擎

“#bind-address = 127.0.0.1 federated”

第2步:

我们需要授予服务器s1的MySQL数据库用户权限,以便它可以访问服务器s2的MySQL数据库

我们需要授予服务器s2的MySQL数据库用户权限,以便它可以访问服务器s1的MySQL数据库

步骤3:我们需要使用以下脚本在服务器s1和服务器s2中创建联合服务器

在服务器s2中,我们将为s1创建联合服务器,以便我们可以从服务器s1更新s2的MySQL数据库。

类似地,在服务器s1中,我们将为s2创建联合服务器,以便我们可以从服务器s2更新s1的MySQL数据库。

假设两个服务器是feds1和feds2

要在服务器s2中创建feds1,我们必须运行以下脚本

CREATE SERVER feds1 FOREIGN DATA WRAPPER mysql OPTIONS(USER'dbuser',HOST'ps1 / pbs1',PORT 3306,DATABASE'dbs1');

要在服务器s1中创建feds2,我们必须运行以下脚本

CREATE SERVER feds2 FOREIGN DATA WRAPPER mysql OPTIONS(USER'dbuser',HOST'ps2 / pbs2',PORT 3306,DATABASE'dbs2');

第4步:

我们必须在两个服务器中创建联合表。

假设我们必须从服务器s2更新服务器s1的表fedtab1并从服务器s1更新服务器s2的表fedtab2

在创建联合表之前,我们必须记住主表应该是InnoDB引擎,否则我们将无法创建联合表。

因此,在服务器s2表中创建联合表fedtab1之前,应该存在服务器s1和InnoDB引擎,并且同样适用于服务器s2的fedtab2。

然后我们必须使用以下脚本创建联合表

// fedtab1_f服务器s2中的联合表CREATE TABLE fedtab1_f(服务器s1中fedtab1表的所有/选择列)ENGINE = FEDERATED DEFAULT CHARSET = utf8 CONNECTION ='feds1 / fedtab1';

// fedtab2_f服务器s1中的联合表CREATE TABLE fedtab2_f(服务器s2中fedtab2表的所有/选择列)ENGINE = FEDERATED DEFAULT CHARSET = utf8 CONNECTION ='feds2 / fedtab2';

第5步:

我们必须实现数据集成逻辑。它可以使用触发器或PHP脚本。

© www.soinside.com 2019 - 2024. All rights reserved.