canal是众所周知的阿里监听解析mysql的binlog的工具,由于在本机使用时不方便直接运行,所以使用docker来部署mysql+canal,也可以加上canal-admin,下面直接展示:
部署mysql
本来mysql在容器启动时可以添加参数配置log-bin和binlog-format但无法配置server_id导致容器无法启动,所以使用默认配置启动容器再进入容器修改配置方式
这里可以不映射相关路径,根据需求决定
//创建一个容器内网络
docker network create my_network
//构建mysql
docker run --name mysql-es --net my_network -v /youdir:/var/lib/mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.32
然后需要进入docker内部修改配置文件,之所以没有使用映射配置文件路径,因为配置映射后可能导致默认配置文件丢失情况,正式使用时也可以重新打包mysql,不用每次都进去修改。
//进入docker中
docker exec -it mysql-es /bin/bash
//修改相关配置
cd /etc/mysql/mysql.conf.d/
echo 'log-bin=mysqlbin'>> mysqld.cnf
echo 'server_id=1' >> mysqld.cnf
echo 'binlog-format=ROW'>> mysqld.cnf
exi