【问题标题】:How to implement data integration using federated servers in mysql?如何在mysql中使用联合服务器实现数据集成?
【发布时间】:2019-04-18 23:31:41
【问题描述】:

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

【问题讨论】:

    标签: mysql integration federated


    【解决方案1】:

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

    s1 的私有 IP 是 ps1,s2 的私有 IP 是 ps2 s1的公网IP是pbs1,s2是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 选项(用户“dbuser”、主机“ps1/pbs1”、端口 3306、数据库“dbs1”);

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

    创建服务器 feds2 国外数据包装器mysql 选项(用户“dbuser”、主机“ps2/pbs2”、端口 3306、数据库“dbs2”);

    第 4 步:

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

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

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

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

    那么我们必须使用以下脚本创建联合表

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

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

    第 5 步:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 2014-10-12
      • 2021-06-12
      • 1970-01-01
      相关资源
      最近更新 更多