Canal解析MySQL 5.7的binlog

Canal解析MySQL 5.7的binlog

https://github.com/alibaba/canal

  • 1.配置Linux的yum源

  • 1.1在命令中执行行如下的命令,添加MySQL5.7的yum源

  • 1.2 执行安装MySQL的命令(用root用户或sudo)

  • 2.启动MySQL服务

  • 3.修改MySQL密码

  • 3.1获取MySQL临时密码

  • 3.2使用临时密码登录MySQL

    cat >> /etc/yum.repos.d/mysql57.repo << EOF
    [mysql57-community]
    name=MySQL 5.7 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
    enabled=1
    gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    EOF
    yum install -y mysql-community-server
    service mysqld start
    grep ‘temporary password’ /var/log/mysqld.log
    mysql -uroot -p-yuysJYN?0ul

3.3修改MySQL密码
修改密码的安全级别
4.添加一个普通⽤用户
4.1 创建一个普通⽤用户
4.2赋予权限
4.3刷新权限
5 创建一个数据库
6安装Canal的
set global validate_password_policy=LOW;
set global validate_password_length=5;
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;
CREATE USER mycanal IDENTIFIED BY ‘mycanal’;
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘mycanal’@’%’;
FLUSH PRIVILEGES;
CREATE DATABASE doitmall CHARSET utf8;
6安装Canal的
6.1 下载Cannal 1.1.3版本
6.2上传到MySQL所在的机器器上,然后解压
7 修改MySQL的配置
canal的原理理是基于mysql binlog技术,所以这⾥里里⼀一定需要开启mysql的binlog写⼊入功能,建议配
置binlog模式为row
修改MySQL配置⽂文件
重启mysql
8.修改Canal的配置⽂文件
8.1修改canal的主配置⽂文件
https://github.com/alibaba/canal/releases
mkdir -p /bigdata/canal
tar -zxvf canal.deployer-1.1.3.tar.gz -C /bigdata/canal/
vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin #添加这⼀一⾏行行就ok
binlog-format=ROW #选择row模式
server_id=1 #配置mysql replaction需要定义,不不能和canal的slaveId重复
service mysqld restart
cd /bigdata/canal/
vi canal.properties
8.2修改canal的实例例配置⽂文件
vvii ccoonnff//eexxaammppllee//iinnssttaannccee…pprrooppeerrttiieess
9 Canal滤规则(如果使⽤用kafka动态topic,规则不不⽣生效)
https://github.com/alibaba/canal/wiki/AdminGuide
mysqladmin -uroot -pDoIt123 password 123456
#canal跟kafka整合,将数据发送到kafka
canal.serverMode = kafka
#指定kafka broker地址
canal.mq.servers = node-1.51doit.cn:9092,node-2.51doit.cn:9092,node-3.51doit.cn:9092
#数据发送kafka失败重试次数
canal.mq.retries = 2
#mysql数据库的地址
canal.instance.master.address=127.0.0.1:3306
#mysql⽤用户名
canal.instance.dbUsername=mycanal
#mysql密码
canal.instance.dbPassword=mycanal
#注释掉使用默认的topic
#canal.mq.topic=example

dynamic topic route by schema or table regex

#使用动态topic,将test的数据库的test表发送到kafka的test1的topic
#将test的数据库的user表发送到kafka的user1的topic

canal.mq.dynamicTopic=test1:test\\.test,user1:test\\.user

你可能感兴趣的:(Canal解析MySQL 5.7的binlog)