1.在服务器新建文件夹 mysql/data,新建文件 mysql/conf.d/my.cnf
[mysqld]
log_timestamps=SYSTEM
default-time-zone='+8:00'
server-id=1
log-bin=mysql-bin
binlog-do-db = mall # 要监听的库
binlog_format=ROW
其中 :
① server-id :指定当前服务的id,必须指定,否则会报错
② log-bin :设置binlog文件的存放地址和文件名,叫做mysql-bin,此处指定的目录前缀是mysql容器的数据存放目录,所以可以在挂载目录中看到相关的文件,命名格式是mysql-bin.000001开始慢慢叠加
③ binlog-do-db :指定针对哪个数据库记录binlog的events事件,此处记录mall库
如果在 MySQL 配置中没有显式地配置 binlog-do-db 参数,那么 MySQL 的二进制日志(binlog)将会记录所有数据库的变更操作。
binlog_format
binlog_format 是用于配置二进制日志(binlog)的格式。binlog 是 MySQL 中用于记录数据库的变更操作的日志文件。
类型有:
1. STATEMENT:以 SQL 语句的形式记录数据库的变更操作
2. ROW:以行的形式记录数据库的变更操作
3. MIXED:混合模式
2.启动数据库
docker run --name mysql01 \
-p 3306:3306 \
-v /opt/mysql/conf.d:/etc/mysql/conf.d \
-v /opt/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0
我的阿里镜像:
sql:
registry.cn-beijing.aliyuncs.com/xxkapp/mysql:8.0
registry.cn-beijing.aliyuncs.com/xxkapp/canal-serverregistry.cn-beijing.aliyuncs.com/xxkapp/canal-server:v1.1.5
3 校验是否成功
show variables like 'log_%';
show variables like 'binlog_format';
show variables like 'server_id';
--查看所有日志
show binlog events;
--查看最新的日志
show master status
-- 查询指定的binlog日志
show binlog events in 'XTZJ-20221008CY-bin.000020'
--清空所有的 binlog 日志文件
reset master
4 安装canal
1.新建文件夹logs, 新建文件canal.properties instance.properties docker.compose.yml
2.启动容器:
docker-compose up -d
其中重启
docker-compose down
3.查看结果