一、基本概念
mysql本身支持主从备份,原理就是主库master生成的binlog文件记录了所有的增删改操作语句,然后slave向master发送dump协议,master将binlog日志文件推送给从库slave解析执行,达到数据一致备份的目的。
canal,基于java开发,伪装成一个slave,去监听获取增量的binlog日志文件,然后解析处理获得的相关数据(过程中可以加入自由的加入一些额外的功能性代码需求),利用获得的数据,可以用其他不同用途,比如同步到es中做搜索相关。
二、canal基本配置使用
测试环境:windows、mysql 5.7.26、canal 1.1.3、Navicat for MySQL。
1、mysql安装和配置
1.1、下载安装解压忽略。进入mysql解压后目录,新增data文件夹。
1.2、新增my.ini文件,添加配置:
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3311
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
port=3311
# 默认存储引擎innoDB
default-storage-engine=INNODB
# Server Id.数据库服务器id,这个id用来在主从服务器中标记唯一mysql服务器
server-id=1
datadir=E:\\soft\\mysql2\\data
bind-address=0.0.0.0
# 开启binlog日志
log-bin=mysql-bin
binlog_format = ROW
1.3、cmd进入并目录,启动/关闭 mysql:
//启动
net start mysql
//关闭
net stop mysql
1.4、连接mysql并设置密码
连接:mysql -uroot -p,初始密码为空,一直按enter即可进入mysql命令行。
进入后设置密码:
// 切换库
use mysql;
// 设置密码
update user set authentication_string=PASSWOR