配置 MySQL 的迁移先决条件
要从 MySQL 源数据库运行同步作业,可能需要对数据库进行一些配置更改。 如果 Relational Migrator 确定数据库需要更改配置,它会自动生成包含所需更改的 SQL 脚本。 建议让数据库管理员 (DBA) 查看此脚本中的命令并在数据库服务器上执行这些命令。 MySQL 服务器配置取决于同步作业的类型:
快照同步作业会迁移所有数据,然后停止。
连续同步作业运行快照,然后进入 CDC 阶段以连续复制数据更改。
有关支持的 MySQL 版本的详细信息,请参阅支持的数据库和版本。
步骤
(可选)设置用户权限
以下代码为 Relational Migrator 创建一个新的 MySQL 服务帐户,以连接到 MySQL 实例。 或者,您可以使用现有的 MySQL 服务帐户连接到具有适当权限的 Relational Migrator。
创建服务帐户:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; 向服务帐户授予所需权限:
GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%'; 应用用户权限更改:
FLUSH PRIVILEGES;
在 Relational Migrator 上运行连续作业需要 二进制日志 要在 MySQL 实例上启用。二进制日志 (Binlog) 按提交到数据库的顺序记录所有操作。
(可选)设置用户权限
以下代码为 Relational Migrator 创建一个新的 MySQL 服务帐户,以连接到 MySQL 实例。 或者,您可以使用现有的 MySQL 服务帐户连接到具有适当权限的 Relational Migrator。
创建服务帐户:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; 向服务帐户授予所需权限:
GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%'; 应用用户权限更改:
FLUSH PRIVILEGES;
(可选)手动验证 Binlog 是否已启用
Relational Migrator 会自动检查此设置。要手动检查是否已启用 Binlog
选项,请针对您的 MySQL 版本使用以下查询:
注意
Binlog
默认情况下,在 MySQL 8.x
版本上自动启用。
SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM performance_schema.global_variables WHERE variable_name='log_bin';
SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM information_schema.global_variables WHERE variable_name='log_bin';
查找并更新 MySQL 配置文件
运行以下 SQL 查询以获取 MySQL 实例的
server_id
值:SELECT variable_value FROM performance_schema.global_variables WHERE variable_name='server_id'; SELECT variable_value FROM information_schema.global_variables WHERE variable_name='server_id'; 在终端中运行以下
mysqld
命令,找到 MySQL 实例的配置文件:mysql --help | findstr cnf mysql --help | grep cnf 在 MySQL 配置文件的
[mysqld]
部分下,添加以下行。将XXXXX
值替换为上一个查询中的server_id
:server-id = XXXXX log_bin = mysql-bin binlog_format = ROW binlog_row_image = FULL binlog_expire_logs_seconds = 864000 server-id = XXXXX log_bin = mysql-bin binlog_format = ROW binlog_row_image = FULL expire_log_days = 10 注意
如果您在 AWS RDS 和 自动备份 上运行 MySQL
Binlog
未启用,则即使在配置文件中设置了这些值, 也将被禁用。
了解详情
Relational Migrator 依赖开源 Debezium 连接器来捕获行级更改。有关更多详细信息,请参阅 Debezium MySQL。