mysql如何使用联邦服务器实现数据集成?
How to implement data integration using federated servers in mysql?
如何使用MYSQL 联合服务器在两个服务器之间进行数据集成?
对于这几个步骤,我们需要遵循。
让我们假设有两台服务器 s1 和 s2,我们有 public IP 和私有 IP,我们只使用 Linux 服务器。
s1 的私有 IP 是 ps1,s2 的私有 IP 是 ps2
public s1 的 IP 是 pbs1 s2 是 pbs2
两个数据库是dbs1和dbs2
如果服务器不在同一个 LAN 中,那么我们必须使用 public IP,如果在同一个 LAN 中,那么我们可以使用其中任何一个。但是,私有 IP 使用更安全。
第一步:
我们需要在 MYSQL 中启用联合引擎,方法是在文件 my.cnf
中使用它
"#绑定地址=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
选项(用户 'dbuser'、主机 'ps1/pbs1'、端口 3306、数据库 'dbs1');
要在服务器 s1 中创建 feds2,我们必须 运行 以下脚本
创建服务器feds2
外部数据包装器 mysql
选项(用户 'dbuser'、主机 'ps2/pbs2'、端口 3306、数据库 'dbs2');
第 4 步:
我们必须在两个服务器中创建联合 table。
假设我们必须从服务器 s2 更新服务器 s1 的 table fedtab1 和
从服务器 s1
更新服务器 s2 的 table fedtab2
在创建联合 table 之前,我们必须记住主 table 应该是 InnoDB 引擎,否则我们将无法创建联合 table。
因此,在服务器 s2 中创建联合 table fedtab1 之前 table 应该存在于服务器 s1 中并且具有 InnoDB 引擎,同样适用于服务器 s2 的 fedtab2。
然后我们必须使用以下脚本创建联合 tables
//fedtab1_f 在服务器 s2 中联合 table
创建 TABLE fedtab1_f
(
服务器 s1 中 fedtab1 table 的 All/selective 列
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='feds1/fedtab1';
//fedtab2_f 在服务器 s1 中联合 table
创建 TABLE fedtab2_f
(
服务器 s2 中 fedtab2 table 的 All/selective 列
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='feds2/fedtab2';
第 5 步:
我们必须实施数据集成逻辑。它可以使用触发器或 PHP 脚本。
如何使用MYSQL 联合服务器在两个服务器之间进行数据集成?
对于这几个步骤,我们需要遵循。 让我们假设有两台服务器 s1 和 s2,我们有 public IP 和私有 IP,我们只使用 Linux 服务器。
s1 的私有 IP 是 ps1,s2 的私有 IP 是 ps2 public s1 的 IP 是 pbs1 s2 是 pbs2
两个数据库是dbs1和dbs2
如果服务器不在同一个 LAN 中,那么我们必须使用 public IP,如果在同一个 LAN 中,那么我们可以使用其中任何一个。但是,私有 IP 使用更安全。
第一步: 我们需要在 MYSQL 中启用联合引擎,方法是在文件 my.cnf
中使用它"#绑定地址=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 选项(用户 'dbuser'、主机 'ps1/pbs1'、端口 3306、数据库 'dbs1');
要在服务器 s1 中创建 feds2,我们必须 运行 以下脚本
创建服务器feds2 外部数据包装器 mysql 选项(用户 'dbuser'、主机 'ps2/pbs2'、端口 3306、数据库 'dbs2');
第 4 步:
我们必须在两个服务器中创建联合 table。
假设我们必须从服务器 s2 更新服务器 s1 的 table fedtab1 和 从服务器 s1
更新服务器 s2 的 table fedtab2在创建联合 table 之前,我们必须记住主 table 应该是 InnoDB 引擎,否则我们将无法创建联合 table。
因此,在服务器 s2 中创建联合 table fedtab1 之前 table 应该存在于服务器 s1 中并且具有 InnoDB 引擎,同样适用于服务器 s2 的 fedtab2。
然后我们必须使用以下脚本创建联合 tables
//fedtab1_f 在服务器 s2 中联合 table
创建 TABLE fedtab1_f
(
服务器 s1 中 fedtab1 table 的 All/selective 列
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='feds1/fedtab1';
//fedtab2_f 在服务器 s1 中联合 table
创建 TABLE fedtab2_f
(
服务器 s2 中 fedtab2 table 的 All/selective 列
) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='feds2/fedtab2';
第 5 步:
我们必须实施数据集成逻辑。它可以使用触发器或 PHP 脚本。