只有mysql 可以使用此功能。
注意:此功能只有mysql可以使用。 阿里的canal也可以实现此功能,但是我用起来问题有点多。
postgresql也有类似的功能,但是不使用的此软件。可以自己查找pg_recvlogical test_decoding wal2json pgcat Logical Decoding 和最新的PgOutput。postgresql基本都是用插件实现。
一 mysql的部分
1开启逻辑复制功能
[mysqld]
server_id=1
log-bin=master
binlog_format=row
2设置用来复制的账号,用户名maxwell 密码xxxxxx
mysql> CREATE USER 'maxwell'@'%' IDENTIFIED BY 'XXXXXX';
mysql> GRANT ALL ON maxwell.* TO 'maxwell'@'%';
mysql> GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'maxwell'@'%';
maxwell的使用
1 命令行方式
输出到控制台
bin/maxwell --user='maxwell' --password='XXXXXX' --host='127.0.0.1' --producer=stdout
输出到rabbitmq
bin/maxwell --user='maxwell' --password='XXXXXX' --host='127.0.0.1' \
--producer=rabbitmq --rabbitmq_host='rabbitmq.hostname'
输出到redis
bin/maxwell --user='maxwell' --password='XXXXXX' --host='127.0.0.1' \
--producer=redis --redis_host=redis.hostname
2 docker
输出到控制台
docker run -it --rm zendesk/maxwell bin/maxwell --user=$MYSQL_USERNAME \
--password=$MYSQL_PASSWORD --host=$MYSQL_HOST --producer=stdout
输出到kafka
docker run -it --rm zendesk/maxwell bin/maxwell --user=$MYSQL_USERNAME \
--password=$MYSQL_PASSWORD --host=$MYSQL_HOST --producer=kafka \
--kafka.bootstrap.servers=$KAFKA_HOST:$KAFKA_PORT --kafka_topic=maxwell
3下载地址
https://github.com/zendesk/maxwell/releases/download/v1.29.2/maxwell-1.29.2.tar.gz