跳到主要内容
版本:3.x

TencentDB for MariaDB

适用版本Cloud 功能TapData Cloud 为您提供了云端服务,适合需要快速部署、低前期投资场景,帮助您更好地专注于业务发展而非基础设施管理,注册账号即可领取免费的 Agent 实例,欢迎试用。企业版功能TapData Enterprise 可部署在您的本地数据中心,适合对数据敏感性或网络隔离有严格要求的场景,可服务于构建实时数仓,实现实时数据交换,数据迁移等场景。社区版功能TapData Community 是一个开源的数据集成平台,提供基础的数据同步和转换功能,可通过 Docker 一键部署,帮助您快速探索和实施数据集成项目。随着项目或企业发展,您可以平滑升级至 TapData Cloud 或 TapData Enterprise,以获得更多高级功能或服务支持。

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

支持版本

MariaDB 10.x

前提条件(作为源)

开启 Binlog

  • 必须开启 MariaDB 的 binlog ,Tapdata 才能正常完成同步工作。
  • 级连删除(CASCADE DELETE),这类由数据库产生的删除不会记录在 binlog 内,所以不被支持。 修改 $MYSQL_HOME/mysql.cnf, 例如:
server_id         = 223344
log_bin = mysql-bin
expire_logs_days = 1
binlog_format = row
binlog_row_image = full

配置解释:

  • server-id: 对于 MariaDB 中的每个服务器和复制客户端必须是唯一的
  • binlog_format:必须设置为 row 或者 ROW
  • binlog_row_image:必须设置为 full
  • expire_logs_days:二进制日志文件保留的天数,到期会自动删除
  • log_bin:binlog 序列文件的基本名称

重启 MariaDB

/etc/inint.d/mysqld restart

验证 binlog 已启用,请在 mysql shell 执行以下命令

show variables like 'binlog_format';

输出的结果中,format value 应该是"ROW"

创建 MariaDB 账号

create user 'username'@'localhost' identified by 'password';

给 tapdata 账号授权

对于某个数据库赋于 select 权限

GRANT SELECT, SHOW VIEW, CREATE ROUTINE, LOCK TABLES ON <DATABASE_NAME>.<TABLE_NAME> TO 'tapdata' IDENTIFIED BY 'password';

对于全局的权限

GRANT RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT, SUPER ON *.* TO 'tapdata' IDENTIFIED BY 'password';

前提条件(作为目标)

对于某个数据库赋于全部权限

GRANT ALL PRIVILEGES ON <DATABASE_NAME>.<TABLE_NAME> TO 'tapdata' IDENTIFIED BY 'password';

对于全局的权限

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