1. MYSQL 数据库配置说明

请遵循以下说明以确保在 Tapdata 中成功添加和使用MySQL目标数据库。

2. 支持版本

MySQL 5.0、5.1、5.5、5.6、5.7、8.x

3. 先决条件 (作为源)

3.1 开启binlog

  • 必须开启 MySQL 的 binlog ,Tapdata 才能正常完成同步工作。
  • 级连删除(CASCADE DELETE),这类由数据库产生的删除不会记录在binlog内,所以不被支持。 修改 $MYSQL_HOME/mysql.cnf, 例如:
    1. server_id = 223344
    2. log_bin = mysql-bin
    3. expire_logs_days = 1
    4. binlog_format = row
    5. binlog_row_image = full
    配置解释:
    server_id: 对于 MySQL 中的每个服务器和复制客户端必须是唯一的,且server_id必须大于0
    binlog_format:必须设置为 row 或者 ROW
    binlog_row_image: 必须设置为 full
    expire_logs_days:二进制日志文件保留的天数,到期会自动删除
    log_bin:binlog 序列文件的基本名称

    3.2 重启MySQL

    1. /etc/inint.d/mysqld restart
    验证 binlog 已启用,请在 mysql shell 执行以下命令
    1. show variables like 'binlog_format';
    输出的结果中,format value 应该是”ROW”

    3.3 创建MySQL账号

    Mysql8以后,对密码加密的方式不同,请注意使用对应版本的方式,设置密码,否则会导致无法进行增量同步 使用以下命令,确认 supplemental logging 是否开启
    3.3.1 5.x版本
    1. create user 'username'@'localhost' identified by 'password';
    3.3.2 8.x版本
    1. // 创建用户
    2. create user 'username'@'localhost' identified with mysql_native_password by 'password';
    3. // 修改密码
    4. alter user 'username'@'localhost' identified with mysql_native_password by 'password';

    3.4 给tapdata账号授权

    对于某个数据库赋于select权限
    1. GRANT SELECT, SHOW VIEW, CREATE ROUTINE, LOCK TABLES ON <DATABASE_NAME>.<TABLE_NAME> TO 'tapdata' IDENTIFIED BY 'password';
    对于全局的权限 ```bash GRANT RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘tapdata’ IDENTIFIED BY ‘password’;
  1. <a name="Kjeyz"></a>
  2. ### 4. 先决条件(作为目标)
  3. 对于某个数据库赋于全部权限
  4. ```bash
  5. GRANT ALL PRIVILEGES ON <DATABASE_NAME>.<TABLE_NAME> TO 'tapdata' IDENTIFIED BY 'password';

对于全局的权限

GRANT PROCESS ON *.* TO 'tapdata' IDENTIFIED BY 'password';

5. 常见错误

Unknown error 1044 如果权限已经grant了,但是通过tapdata还是无法通过测试连接,可以通过下面的步骤检查并修复

SELECT host,user,Grant_priv,Super_priv FROM mysql.user where user='username';
//查看Grant_priv字段的值是否为Y
//如果不是,则执行以下命令
UPDATE mysql.user SET Grant_priv='Y' WHERE user='username';
FLUSH PRIVILEGES;

6.从MySQL从库同步的配置

在使用MySQL从库做同步时,除在从库上开启以上设置外(参考3.先决条件),还需要:

  1. 数据同步前检查主从库是否一致,不一致时可查看从节点状态:

SHOW SLAVE STATUS
根据具体报错修复后,再执行数据同步。

  1. 当数据不可同步时,检查MySQL库的参数配置:

Select @@log_slave_updates
log_slave_updates=1才可执行数据同步。


更多疑问或加入产品技术交流群:
官网.png
扫码添加 Tapdata 官方小助手

立即免费使用