Redis 安装和配置Canal
安装和配置Canal
下面我们就开启mysql的主从同步机制,让Canal来模拟salve
1.开启MySQL主从
Canal是基于MySQL的主从同步功能,因此必须先开启MySQL的主从功能才可以。
这里以之前用Docker运行的mysql为例:
1.1.开启binlog
打开mysql容器挂载的日志文件,我的在/tmp/mysql/conf
目录:
修改文件:
1 | vi /tmp/mysql/conf/my.cnf |
添加内容:
1 | log-bin=/var/lib/mysql/mysql-bin |
配置解读:
log-bin=/var/lib/mysql/mysql-bin
:设置binary log文件的存放地址和文件名,叫做mysql-binbinlog-do-db=heima
:指定对哪个database记录binary log events,这里记录heima这个库
最终效果:
1 | [mysqld] |
1.2.设置用户权限
接下来添加一个仅用于数据同步的账户,出于安全考虑,这里仅提供对heima这个库的操作权限。
1 | create user canal@'%' IDENTIFIED by 'canal'; |
重启mysql容器即可
1 | docker restart mysql |
测试设置是否成功:在mysql控制台,或者Navicat中,输入命令:
1 | show master status; |
2.安装Canal
2.1.创建网络
我们需要创建一个网络,将MySQL、Canal、MQ放到同一个Docker网络中:
1 | docker network create heima |
让mysql加入这个网络:
1 | docker network connect heima mysql |
2.3.安装Canal
大家可以上传到虚拟机,然后通过命令导入:
1 | docker load -i canal.tar |
然后运行命令创建Canal容器:
1 | docker run -p 11111:11111 --name canal \ |
说明:
-p 11111:11111
:这是canal的默认监听端口-e canal.instance.master.address=mysql:3306
:数据库地址和端口,如果不知道mysql容器地址,可以通过docker inspect 容器id
来查看-e canal.instance.dbUsername=canal
:数据库用户名-e canal.instance.dbPassword=canal
:数据库密码-e canal.instance.filter.regex=
:要监听的表名称
表名称监听支持的语法:
1 | mysql 数据解析关注的表,Perl正则表达式. |
查看日志:
进入容器中:
查看 canal日志:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 little_kim!
评论