在Centos7上安装和配置canal

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。在Centos7上安装和配置canal,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/192272.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!