添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
耍酷的墨镜  ·  Spring Data MongoDB ...·  1 周前    · 
讲道义的鞭炮  ·  springboot mongodb ...·  1 周前    · 
有情有义的橙子  ·  birdben·  1 周前    · 
失望的斑马  ·  USAJOBS - Search·  3 月前    · 
独立的草稿本  ·  Documentation for DVC ...·  5 月前    · 
温柔的拐杖  ·  [bug] ...·  8 月前    · 
帅呆的马克杯  ·  Visual ...·  8 月前    · 
搜索

5.4.1. 为 Debezium 连接器创建 MySQL 用户

Debezium MySQL 连接器需要一个 MySQL 用户帐户。此 MySQL 用户必须在 Debezium MySQL 连接器捕获更改的所有数据库上具有适当的权限。 MySQL 服务器。 SQL 命令的基础知识。 创建 MySQL 用户:

mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
  • 授予用户所需的权限:

    mysql> GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user' IDENTIFIED BY 'password';

    下表描述了权限。 如果使用 Amazon RDS 或 Amazon Aurora 等托管选项不允许全局读取锁定,则使用表级锁定来创建 一致的快照 。在这种情况下,您还需要为您创建的用户授予 LOCK TABLES 权限。如需了解更多详细信息,请参阅 快照 。 完成用户的权限:

    mysql> FLUSH PRIVILEGES;
  • 表 5.20. 用户权限描述
    关键字 描述

    启用连接器从数据库中的表中选择行。这仅在执行快照时使用。 RELOAD 启用连接器使用 FLUSH 语句来清除或重新载入内部缓存、清除表或获取锁定。这仅在执行快照时使用。 显示数据库 通过发出 SHOW DATABASE 语句来启用连接器查看数据库名称。这仅在执行快照时使用。 复制从设备 启用连接器连接到和读取 MySQL 服务器 binlog。 复制客户端 启用连接器使用以下语句: 显示 MASTER 状态 显示从状态 SHOW BINARY LOGS 连接器始终需要此功能。 标识权限应用到的数据库。 TO 'user' 指定要为其授予权限的用户。 IDENTIFIED BY 'password' 指定用户的 MySQL 密码。

    5.4.2. 为 Debezium 启用 MySQL binlog

    您必须为 MySQL 复制启用二进制日志记录。二进制日志记录复制工具的事务更新以传播更改。 MySQL 服务器。 适当的 MySQL 用户特权。 检查 log-bin 选项是否已位于:

    // for MySql 5.x
    mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::"
    FROM information_schema.global_variables WHERE variable_name='log_bin';
    // for MySql 8.x
    mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::"
    FROM performance_schema.global_variables WHERE variable_name='log_bin';
  • 如果它处于 OFF 状态,请使用以下属性配置 MySQL 服务器配置文件,如下表中所述:

    server-id         = 223344
    log_bin           = mysql-bin
    binlog_format     = ROW
    binlog_row_image  = FULL
    expire_logs_days  = 10
  • 稍后检查 binlog 状态来确认您的更改:

    // for MySql 5.x
    mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::"
    FROM information_schema.global_variables WHERE variable_name='log_bin';
    // for MySql 8.x
    mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::"
    FROM performance_schema.global_variables WHERE variable_name='log_bin';
  • 表 5.21. MySQL binlog 配置属性的描述
    属性 描述

    server-id server-id 的值对于 MySQL 集群中的每个服务器和复制客户端都必须是唯一的。在 MySQL 连接器设置过程中,Debezium 为连接器分配唯一的服务器 ID。 log_bin log_bin 的值是 binlog 文件序列的基本名称。 binlog_format binlog-format 必须设置为 ROW binlog_row_image binlog_row_image 必须设置为 FULL full expire_logs_days 这是自动删除 binlog 文件的天数。默认值为 0, 这意味着不自动删除。将值设为与您的环境需求匹配。请参阅 MySQL 清除 binlog 文件

    5.4.3. 为 Debezium 启用 MySQL 全局事务标识符

    全局事务标识符(GTID)唯一标识集群中服务器上出现的事务。虽然 Debezium MySQL 连接器不需要,但使用 GTID 简化了复制,并可让您更轻松地确认主和副本服务器是否一致。 在 MySQL 5.6.5 及更高版本中提供 GTID。详情请查看 MySQL 文档 。 MySQL 服务器。 SQL 命令的基础知识。 访问 MySQL 配置文件。 启用 gtid_mode

    mysql> gtid_mode=ON
  • 启用 enforce_gtid_consistency

    mysql> enforce_gtid_consistency=ON
  • 确认更改:

    mysql> show global variables like '%GTID%';
  • 结果

    +--------------------------+-------+
    | Variable_name            | Value |
    +--------------------------+-------+
    | enforce_gtid_consistency | ON    |
    | gtid_mode                | ON    |
    +--------------------------+-------+

    表 5.22. GTID 选项的描述
    选项 描述

    gtid_mode 指定是否启用了 MySQL 服务器的 GTID 模式的布尔值。 on = enabled OFF = disabled enforce_gtid_consistency 布尔值,通过允许以事务的方式记录语句来指定服务器强制实施 GTID 一致性。使用 GTID 时是必需的。 on = enabled OFF = disabled

    5.4.4. 为 Debezium 配置 MySQL 会话超时

    为大型数据库进行初始一致的快照时,您建立的连接可能会在表读取期间超时。您可以通过在 MySQL 配置文件中配置 interactive_timeout wait_timeout 来防止此行为。 MySQL 服务器。 SQL 命令的基础知识。 访问 MySQL 配置文件。 配置 interactive_timeout

    mysql> interactive_timeout=<duration-in-seconds>
  • 配置 wait_timeout

    mysql> wait_timeout=<duration-in-seconds>
  • 表 5.23. MySQL 会话超时选项的描述
    选项 描述

    interactive_timeout 服务器在关闭交互式连接前等待活动的秒数。如需了解更多详细信息 ,请参阅 MySQL 文档 wait_timeout 服务器在关闭前等待非互动连接中的活动的秒数。如需了解更多详细信息 ,请参阅 MySQL 文档

    5.4.5. 为 Debezium MySQL 连接器启用查询日志事件

    您可能希望查看每个 binlog 事件的原始 SQL 语句。在 MySQL 配置文件中启用 binlog_rows_query_log_events 选项允许您执行此操作。 这个选项在 MySQL 5.6 及更高版本中可用。 MySQL 服务器。 SQL 命令的基础知识。 访问 MySQL 配置文件。 启用 binlog_rows_query_log_events

    mysql> binlog_rows_query_log_events=ON

    binlog_rows_query_log_events 设置为一个值,它启用了/禁用对在 binlog 条目中包含原始 SQL 语句的支持。 on = enabled OFF = disabled

    5.4.6. 为 Debezium MySQL 连接器验证 binlog 行值选项

    检查 binlog_row_value_options 变量,并确保值 没有设置为 PARTIAL_JSON ,因为在这种情况下连接器可能无法消耗 UPDATE 事件。 MySQL 服务器。 SQL 命令的基础知识。 访问 MySQL 配置文件。 检查当前的变量值

    mysql> show global variables where variable_name = 'binlog_row_value_options';
  • +--------------------------+-------+
    | Variable_name            | Value |
    
  •