当数据迁移/同步/订阅的源库为自建MySQL时,为满足预检查阶段对源库的要求,保障任务的顺利执行,在正式配置之前,您需要在自建MySQL数据库上创建账号并设置binlog。
适用场景及权限参考
场景 | 权限参考 |
数据迁移的源库为自建MySQL,且要执行增量数据迁移。 | 待迁移对象的SELECT权限。 REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW。 建库建表的权限,以允许DTS创建库dts,用于记录迁移期间的心跳数据。 |
数据同步的源库为自建MySQL。 | 待同步对象的SELECT权限。 REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW。 建库建表的权限,以允许DTS创建库dts,用于记录同步期间的心跳数据。 |
数据订阅的源库为自建MySQL。 | 待订阅对象的SELECT权限。 REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW。 建库建表的权限,以允许DTS创建库dts,用于记录订阅期间的心跳数据。 |
影响
执行该操作需要重启MySQL服务,为避免影响您的业务使用,请在业务低峰期操作。
操作步骤
登录自建MySQL数据库。
在自建MySQL数据库中创建用于数据迁移/同步的账号。
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明username:待创建的账号。
host:允许该账号登录的主机,如果允许该账号从任意主机登录数据库,可以使用百分号(%)。
password:账号的密码。
例如,创建一个账号,账号名为dtsmigration,密码为Dts123456,并允许从任意主机登录数据库,命令如下。
CREATE USER 'dtsmigration'@'%' IDENTIFIED BY 'Dts123456';
对账号进行授权操作,所需授予的权限请参见适用场景及权限参考。
对账号授予指定库表的权限。
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
对账号授予建库建表的权限。
GRANT CREATE ON *.* TO 'username'@'host' WITH GRANT OPTION;
说明privileges:授予该账号的操作权限,如SELECT、INSERT、UPDATE等,如果要授予该账号所有权限,则使用ALL。
databasename:数据库名。如果要授予该账号具备所有数据库的操作权限,则使用星号(*)。
tablename:表名。如果要授予该账号具备所有表的操作权限,则使用星号(*)。
username:待授权的账号。
host:允许该账号登录的主机,如果允许该账号从任意主机登录,则使用百分号(%)。
WITH GRANT OPTION:授予该账号使用GRANT命令的权限,该参数为可选。
例如,授予dtsmigration账号具备所有数据库和表的所有权限,并允许从任意主机登录数据库,命令如下。
GRANT ALL ON *.* TO 'dtsmigration'@'%';
开启并设置自建MySQL数据库的binlog。
Linux操作系统操作步骤如下:
使用
vim
命令,修改配置文件my.cnf中的如下参数。log_bin=mysql_bin binlog_format=row server_id=2 #建议设置为大于1的整数 binlog_row_image=full #当自建MySQL的版本大于5.6时,则必须设置该项。
修改完成后,重启MySQL进程。
/etc/init.d/mysqld restart
说明您也可以根据实际情况,使用其他命令或方式进行重启。
Windows操作系统操作步骤如下:
修改配置文件my.ini中的如下参数。
log_bin=mysql_bin binlog_format=row server_id=2 #建议设置为大于1的整数 binlog_row_image=full #当自建MySQL的版本大于5.6时,则必须设置该项。
修改完成后,重启MySQL服务。
说明您可以通过Windows中的服务管理器重启服务,或使用如下命令重启服务:
net stop mysql net start mysql