Maxwell采集Mysql数据到Kafka

Mysql设置

  • 修改/etc/my.cnf文件,开启binlog日志

    vim /etc/my.cnf
    

    添加一下配置
    server-id=1
    log-bin=mysql-bin 这个表示binlog日志的前缀是mysql-bin,以后生成的日志文件就是 mysql-bin.123456 的文件后面的数字按顺序生成,每次mysql重启或者到达单个文件大小的阈值时,新生一个文件,按顺序编号。
    binlog_format=row 这个表示binlog日志的级别为行级, binlog会记录每次操作后每行记录的变化(其他的级别有statement和mixed)。
    binlog-do-db=xxx 这个表示对哪个数据库开启binlog日志

  • 重启MySQL,使配置文件生效

    systemctl restart mysqld
    

Maxwell设置

  • 初始化Maxwell元数据库
    ①在MySQL中建立一个maxwell库用于存储Maxwell的元数据

    [root@node01 ~]# mysql -uroot -p123456
    mysql> CREATE DATABASE maxwell ;
    

    ②设置安全级别

    mysql> set global validate_password_length=4;
    mysql> set global validate_password_policy=0;
    

    ③分配一个账号可以操作该数据库

    mysql> GRANT ALL   ON maxwell.* TO 'maxwell'@'%' IDENTIFIED BY '123456';
    

    ④分配这个账号可以监控其他数据库的权限

    mysql> GRANT  SELECT ,REPLICATION SLAVE , REPLICATION CLIENT  ON *.* TO maxwell@'%';
    
  • 使用Maxwell监控抓取MySQL数据
    ① 拷贝配置文件

    [root@node01 maxwell-1.25.0]# cp config.properties.example config.properties
    

    ②修改配置文件

    producer=kafka
    kafka.bootstrap.servers=node01:9092,node01:9092,node01:9092
    #需要添加
    kafka_topic=kafka的主题名
    # mysql login info
    host=node01
    user=maxwell
    password=123456
    #需要添加 后续初始化会用
    client_id=maxwell_1
    

启动Maxwell

sh /opt/xxx/maxwell-1.25.0/bin/maxwell --config  /opt/xxx/maxwell-1.25.0/config.properties >/dev/null 2>&1 &

你可能感兴趣的:(Maxwell,数据仓库)