配置实时同步MySQL的数据或使用Flink SQL读取MySQL CDC数据前,需要参考本文配置MySQL的账号权限并开启MySQL的Binlog。
使用限制
Dataphin的数据实时集成MySQL数据是基于实时订阅MySQL Binlog实现的,实时同步MySQL数据目前仅支持配置MySQL数据源为RDS的5.x或8.x版本的MySQL,不支持配置为DRDS的MySQL。
操作步骤
创建账号并配置账号权限。
您需要规划一个数据库的登录账号用于后续执行操作,此账号需要拥有数据库的
SELECT
、REPLICATION SLAVE
、REPLICATION CLIENT
权限。创建账号。
您可以参考以下命令为数据库创建账号。
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
配置权限。
您可以参考以下命令为账号添加此权限,或直接给账号赋予SUPER权限。如下执行语句在实际使用时,请替换'同步账号'为上述创建的账号。
-- CREATE USER '同步账号'@'%' IDENTIFIED BY '密码'; //创建同步账号并设置密码,使其可以通过任意主机登录数据库。%表示任意主机。 GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '同步账号'@'%'; //授权同步账号数据库的 SELECT, REPLICATION SLAVE, REPLICATION CLIENT权限。
*.*
表示授权同步账号对所有数据库的所有表拥有上述权限。您也可以指定授权同步账号对目标数据库的指定表拥有上述权限。例如,授权同步账号对test数据库的user表拥有上述权限,则可以使用GRANT SELECT, REPLICATION CLIENT ON test.user TO '同步账号'@'%';
语句。说明REPLICATION SLAVE
语句为全局权限,不能指定授权同步账号对目标数据库的指定表拥有相关权限。
开启MySQL的Binlog。
检查Binlog是否开启并查询Binlog格式,操作如下:
使用如下语句检查Binlog是否开启。
show variables like "log_bin";
返回结果为ON时,表明已开启Binlog。
如果您使用备用库同步数据,则还可以通过如下语句检查Binlog是否开启。
show variables like "log_slave_updates";
返回结果为ON时,表明备用库已开启Binlog。
如果返回的结果与上述结果不符,请参考MySQL官方文档开启Binlog。使用如下语句查询Binlog的使用格式。
show variables like "binlog_format";
返回结果说明:
返回ROW,表明开启的Binlog格式为ROW。
返回STATEMENT,表明开启的Binlog格式为STATEMENT。
返回MIXED,表明开启的Binlog格式为MIXED。