# 安装MySQL
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
# 添加配置文件
vim /mydata/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
# 开启binlog日志:目录为docker里的目录
log-bin=/var/lib/mysql/mysql-bin
# server_id 需保证唯一,不能和 canal 的 slaveId 重复
server-id=123456
binlog_format=row
# test数据库开启,不设置则所有库开启
binlog-do-db=test
# 重启MySQL
docker restart mysql
# 创建用户并赋权限
docker exec -it 容器id /bin/bash
mysql -u root -p
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%' IDENTIFIED BY 'canal' ;
flush privileges;
# mysql创建user表
CREATE TABLE `user` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`sex` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
# 安装redis
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
# 安装canal
docker run -it --name canal -p 11111:11111 -d canal/canal-server:v1.1.5
# 配置canal
docker exec -it 容器id /bin/bash
cd canal-server/conf/example
# 修改配置 第一个是mysql的地址,第二个是我们创建数据库名字(可以使用默认带的,就是全部的库都进行收集binlog日志)
canal.instance.master.address=192.168.84.138:3306
canal.instance.filter.regex=test\..*
# 重启后查看日志
cd canal-server/logs/example/
# 自行新建spring Boot项目验证
Docker部署系列:MySQL与Redis缓存保持一致性
最新推荐文章于 2025-12-15 11:54:01 发布
该文详细描述了如何在Docker环境下安装MySQL和Redis,以及配置MySQL的utf8字符集和binlog日志。接着,创建了用户并赋予相应权限,然后介绍了如何安装和配置Canal用于数据库binlog的监听。最后提到了使用SpringBoot项目进行验证。
6049

被折叠的 条评论
为什么被折叠?



