配置 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 注意
如果您在MySQL Amazon Web ServicesRDS 和 自动备份 上运行
Binlog
未启用,则即使在配置文件中设立了这些值, 也将被禁用。
了解详情
Relational Migrator依赖开源 DebeziumConnector来捕获行级更改。 有关更多详细信息,请参阅 Debezium MySQL。