如何使用MYSQL联合服务器在两台服务器之间进行数据集成?
答案 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脚本。