配置MySQL数据源

配置实时同步MySQL的数据或使用Flink SQL读取MySQL CDC数据前,需要参考本文配置MySQL的账号权限并开启MySQL的Binlog。

使用限制

Dataphin的数据实时集成MySQL数据是基于实时订阅MySQL Binlog实现的,实时同步MySQL数据目前仅支持配置MySQL数据源为RDS的5.x8.x版本的MySQL,不支持配置为DRDS的MySQL

操作步骤

  1. 创建账号并配置账号权限。

    您需要规划一个数据库的登录账号用于后续执行操作,此账号需要拥有数据库的 SELECTREPLICATION SLAVEREPLICATION CLIENT权限。

    1. 创建账号。

      您可以参考以下命令为数据库创建账号。

      CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    2. 配置权限。

      您可以参考以下命令为账号添加此权限,或直接给账号赋予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语句为全局权限,不能指定授权同步账号对目标数据库的指定表拥有相关权限。

  2. 开启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