在Centos7上安装和配置canal

1. 在 MySQL 数据库中创建 Canal 账户并为其授权

在安装 Canal 前,你需要在 MySQL 数据库中创建一个用于 Canal 连接的账户,并为该账户授予必要的权限。

以下是在 MySQL 数据库中创建 Canal 账户并为其授权的步骤:

  1. 登录 MySQL
    使用以下命令登录 MySQL:
mysql -u root -p

输入你的 MySQL root 账户密码后,进入 MySQL 控制台。

  1. 创建 Canal 账户
    使用以下命令在 MySQL 数据库中创建一个名为 canal 的账户,并设置密码:
CREATE USER 'canal'@'%' IDENTIFIED BY '密码';

这里我们将 canal 的密码设置为 canal。请注意,上面的命令中,% 表示可以从任何 IP 地址连接到 MySQL 数据库。

  1. 授权 Canal 账户
    使用以下命令为 canal 账户授权:
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';

这将授予 canal 账户在所有数据库中的表上执行 SELECT 操作,以及执行 MySQL 复制所需的权限。

  1. 刷新权限
    使用以下命令刷新 MySQL 权限:
FLUSH PRIVILEGES;

完成以上步骤后,你就可以在 Canal 配置文件中使用新创建的 canal 账户连接到 MySQL 数据库了。请记得在 canal.properties 配置文件中使用正确的账户名和密码。

如果报验证密码加密方式错误:就执行以下程序,不报错就请忽略
ALTER USER 'canal'@'%' IDENTIFIED WITH mysql_native_password BY 'canal';

2.在 MySQL 中开启二进制日志(binlog)功能

是的,为了能够让 Canal 实时地获取 MySQL 的数据变更,你需要在 MySQL 中开启二进制日志(binlog)功能,并确保 binlog 格式为 ROW。

以下是在 MySQL 中开启 binlog 并设置 binlog 格式为 ROW 的步骤:

  1. 登录 MySQL
    使用以下命令登录 MySQL:
mysql -u root -p

输入你的 MySQL root 账户密码后,进入 MySQL 控制台。

  1. 查看当前 binlog 状态
    使用以下命令查看当前 MySQL 中 binlog 的状态:
show variables like '%binlog%';
  1. 开启 binlog
    如果 MySQL 的 binlog 状态为 OFF,使用以下命令开启 binlog:
set global binlog_format=ROW;
SET GLOBAL server_id = 1;
set global binlog_row_image=full;
set global binlog_checksum=NONE;
SET GLOBAL binlog_expire_logs_seconds = 604800;
  1. 配置 binlog
    使用以下命令修改 MySQL 的配置文件,启用 binlog 并设置 binlog 格式为 ROW:
vi /etc/my.cnf

在 my.cnf 文件中添加以下内容:

[mysqld]

log-bin=mysql-bin
server_id=1
binlog-format=ROW
binlog_row_image=full
binlog_checksum=NONE
# 设置binlog文件的过期时间(可选)
binlog_expire_logs_seconds = 604800

这些配置选项将启用binlog功能、设置binlog格式为ROW、记录完整的行数据、禁用binlog校验和,以及(可选)设置binlog文件的过期时间。这样的设置将确保MySQL与Canal进行数据同步的兼容性。

  1. 重启 MySQL
    使用以下命令重启 MySQL 以应用新的 binlog 配置:
systemctl restart mysqld

完成以上步骤后,你已经成功地开启了 MySQL 的 binlog,并设置了 binlog 格式为 ROW。现在,你可以在 Canal 配置文件中配置连接到 MySQL 并监控 MySQL 的数据变更。

3. 在CentOS 7上安装canal:

  1. 确保系统已安装Java环境:Canal需要JDK 1.8或更高版本。您可以通过运行以下命令检查Java版本:
java -version

如果没有安装Java,请使用以下命令安装OpenJDK 1.8:

sudo yum install java-1.8.0-openjdk
  1. 下载canal预发布版本:https://github.com/alibaba/canal/releases/tag/canal-1.1.7-alpha-2,选择需要的组件(例如:canal.deployer-1.1.7-SNAPSHOT.tar.gz)并上传到您的CentOS 7系统。
    在这里插入图片描述
这些文件都是canal-1.1.7-alpha-2预发布版本的不同组件,它们之间的区别如下:
1. canal.adapter-1.1.7-SNAPSHOT.tar.gz(236 MB,发布于1月4日):这个包含了canal适配器组件,用于在不同数据源和数据目标之间进行数据同步。
2. canal.admin-1.1.7-SNAPSHOT.tar.gz(37.5 MB,发布于1月4日):这个包含了canal的管理组件,用于对canal集群进行管理、监控和配置。
3. canal.deployer-1.1.7-SNAPSHOT.tar.gz(102 MB,发布于1月4日):这个包含了canal部署组件,用于部署、启动和停止canal服务。
4. canal.example-1.1.7-SNAPSHOT.tar.gz(23.1 MB,发布于1月4日):这个包含了一些canal的示例项目,帮助用户了解如何使用和配置canal进行数据同步。
这些组件都是为了实现canal数据同步工具的不同功能而设计的。用户可以根据自己的需求选择相应的组件进行下载和使用。
  1. 解压缩下载的文件:
mkdir canal.deployer-1.1.7-SNAPSHOT

tar -zxvf canal.deployer-1.1.7-SNAPSHOT.tar.gz -C canal.deployer-1.1.7-SNAPSHOT

解压后,您将看到一个名为canal.deployer-1.1.7-SNAPSHOT的目录。

  1. 配置canal:进入解压后的目录,找到conf文件夹,然后编辑example/instance.properties文件,根据您的MySQL/MariaDB设置配置canal。
cd canal.deployer-1.1.7-SNAPSHOT/conf
vim example/instance.properties

至少需要修改以下设置:

canal.instance.master.address=your_mysql_server_ip:3306
canal.instance.dbUsername=your_mysql_username
canal.instance.dbPassword=your_mysql_password

在这里插入图片描述

  1. 启动canal服务:
cd ../bin
./startup.sh

现在,canal已经启动并运行在您的CentOS 7系统上。您可以通过查看日志文件(位于logs目录)来检查运行状态和潜在问题。如果需要停止canal服务,可以运行:

./stop.sh

这些步骤将在CentOS 7上安装并启动canal服务。在实际应用中,您可能还需要配置其他组件,例如canal.adapter、canal.admin等,具体取决于您的需求。

  1. canal 启动后,你可以使用以下命令查看日志文件:
tail -f logs/canal/canal.log

这将以实时方式显示 canal 的日志输出。你可以使用 Ctrl + C 组合键来停止查看日志。

查看同步的日志

tail -f logs/example/example.log
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ascarl2010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值