使用canal进行mysql数据同步到Redis 踩坑记录

本文记录使用canal进行MySQL 5.7数据同步到Redis的过程,包括修改my.ini配置,设置数据库用户权限,下载部署canal,以及遇到的问题和解决方案。通过java客户端实现数据变更实时同步,并展示了数据插入和更新后的Redis存储情况。
摘要由CSDN通过智能技术生成

使用的数据库 是MySql 5.7
参考:https://blog.csdn.net/tb3039450/article/details/53928351
参考:https://blog.csdn.net/john1337/article/details/85166575
参考:https://www.cnblogs.com/xujishou/p/6306765.html
参考:https://blog.csdn.net/xyw591238/article/details/51965043

1. 修改数据库配置文件

找到数据库的安装目录。 注意一定是 ProgramData 下的my.ini 目录
添加
log-bin=mysql-bin #添加这一行就ok
binlog-format=ROW #选择row模式
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
在这里插入图片描述
重启数据库
此电脑右键 --》管理–》服务和应用程序-》服务-》MySQL57 点击停止, 再点击启动
在这里插入图片描述

2.配置mysql数据库

创建canal用户,用来管理canal的访问权限。我们可以通过对canal用户访问权限的控制,进而控制canal能够获取的内容

1.DROP USER ‘canal’@’%’ // 先删除下需要创建的用户, 防止已存在
2.FLUSH PRIVILEGES; // 刷新授权
3.CREATE USER ‘canal’@’%’ IDENTIFIED BY ‘canal’; 创建用户
%的位置 指定该用户在哪个主机上可以登陆,此处如果用的是"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;
IDENTIFIED BY ‘canal’; 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
4.SHOW GRANTS FOR canal 查看用户是否创建

5.GRANT SELECT, INSERT ON jaliance.* TO ‘canal’@’%’; 授予用户 SELECT 和INSERT 的权限, 在jaliance database 下的所有表
PS: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示, 如..
grant all privileges on jaliance.
TO ‘canal’@’%’;

6.FLUSH PRIVILEGES;

7.GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘canal’@

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值