天天看點

SpringCloud----->springboot項目讀取mysql的binlog日志

springboot項目讀取mysql的binlog日志,在去年的時候,我就遇到一個需求,需要把mysql資料庫中的資料的增、删、改的資料準實時做資料清洗,也就是ETL工作,同步到公司的資料倉庫greenplum中(資料庫資料變化的監聽進而同步緩存(如Redis)資料等)。現在将整個詳細的操作過程記錄如下:
    (1)、修改mysql資料庫的my.cnf配置檔案:
        
        [mysqld]
        log-bin=mysql-bin  #開啟binlog
        binlog-format=ROW  #選擇ROW模式
        server_id=1        #配置mysql replication需要定義,不能和canal的slaveId重複
    (2)、重新開機mysql,确認mysql正常啟動
    (3)、檢視binlog是否開啟:
         show  variables  like "%log_bin%" 
         确認log_bin----->ON
            sql_log_bin----->ON
            
    (4)、檢視binlog日志狀态
            show master status 
    (5)、重新整理binlog日志檔案
            flush  logs   #重新整理之後會建立立一個binlog日志
    (6)、清空日志檔案
            reset master 
    (7)、授權 canal 連結 MySQL 賬号具有作為 MySQL slave 的權限, 如果已有賬戶可直接 grant

      CREATE USER canal IDENTIFIED BY 'canal';  
      GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
      -- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
      FLUSH PRIVILEGES;
 以上每一步都操作完成後,就開啟了binlog日志了,資料庫方面的準備工作就算是完成了。 本周會更新剩下的操作每一步。