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

时间:2019-04-18 14:51:07

标签: mysql integration federated

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

1 个答案:

答案 0 :(得分:0)

对于这几个步骤,我们需要遵循。 假设有两个服务器s1和s2,并且我们同时拥有公共IP和私有IP,并且仅使用Linux服务器。

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

和两个数据库分别是dbs1和dbs2

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

步骤1: 我们需要通过在my.cnf

文件中使用它来在MYSQL中启用联合引擎。

“#bind-address = 127.0.0.1 联邦”

第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,我们必须运行以下脚本

创建服务器feds1 外国数据包装MySQL 选项(USER'dbuser',HOST'ps1 / pbs1',PORT 3306,DATABASE'dbs1');

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

创建服务器feds2 外国数据包装MySQL 选项(USER'dbuser',HOST'ps2 / pbs2',PORT 3306,DATABASE'dbs2');

第4步:

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

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

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

因此,在服务器s2中创建联合表fedtab1之前,表s应当存在于服务器s1中并且与InnoDB引擎一起使用,并且对服务器s2的fedtab2同样适用。

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

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

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

第5步:

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