mysql開啟binlog
1 開啟binlog
sudo vi /etc/my.cnf
2 mysql的binlog格式有3種,為了把binlog解析成json資料格式,要設定binlog的格式為row(binlog有三種格式:Statement、Row以及Mixed)
server-id=1
log-bin=master(這一步開啟binlog)
binlog_format=row
3重新開機msyql服務
sudo service mysqld restart
4檢視是否已經開啟binlog
Mysql>show variables like ‘%log_bin%’;
此時,可以在目錄/var/lib/mysql下看到生成了相應的binlog監聽日志檔案,如圖,master.000001檔案,每次重新開機msyql服務,就會生成一個新的監聽檔案
Kafka的配置啟動:
1首先啟動zookeeper
$sbin/zkServer.sh start
2開啟kafka指令行
bin/kafka-server-start.shconfig/server.properties
3建立一個主題叫maxwell以便于接受資料
bin/kafka-topics.sh–create –zookeeper mw:2181 –replication-factor 1 –partitions 1 –topic maxwell
4啟動生産者視窗
bin/kafka-console-producer.sh–broker-list mw:9092 –topic maxwell
5啟動消費者視窗
bin/kafka-console-consumer.sh–zookeeper mw:2181 –topic maxwell –from-beginning(老版本的啟動指令,運作可能會報錯)
下面是新版本的指令,親測可行:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
Maxwell配置安裝:
1下載下傳Maxwell
官網
http://maxwells-daemon.io/
2 安裝Maxwell
tar -zxvf maxwell-1.10.6.tar.gz
3給mysql授權
mysql> GRANT ALL on maxwell.* to’maxwell’@’%’ identified by ‘XXXXXX’;
mysql> GRANT SELECT, REPLICATION CLIENT,REPLICATION SLAVE on *.* to ‘maxwell’@’%’;
以上圖檔為官網參考
以我自己的為例:
GRANTALL on *.* to ‘user01’@’%’ identified by ‘123456’;
把所有資料庫的所有表授權給user01使用者以密碼123456登入
GRANTSELECT, REPLICATION CLIENT, REPLICATION SLAVE on *.* to ‘user01’@’%’;
flushprivileges;
4開啟maxwell指令行(注意,如果沒有設定,maxwell預設是把監聽的mysql的binlog日志發送到kafka的主題叫maxwell的topic上的)
bin/maxwell --user='maxwell' --password='XXXXXX' --host='127.0.0.1' \
- 1
--producer=kafka --kafka.bootstrap.servers=localhost:9092
- 1
以上為官網參考,我自己的具體的demo 這裡我直接用的是root賬号,沒有使用上面新增的那個賬号
bin/maxwell --user=’root’ --password=’123456’ --host=’192.168.100.106’ --producer=kafka --kafka.bootstrap.servers=localhost:9092解釋:host參數是安裝mysql的那台主機,最後的kafka.bootstrap.servers是安裝kafka叢集的節點主機名和端口号
測試:
1、此時,mysql的binlog已經開啟,maxwell指令行也開啟,kafka的生産者消費者視窗也開啟在監聽
開始往mysql裡插入修改資料,資料送出的時候可以看到Kafka的消費者視窗有監聽到json資料
此處測試出個問題:增删改都沒問題,但是我對表結構的修改并沒有輸出。待進一步探索。
此問題已解決,需要修改配置檔案,output_ddl是否在輸出的json流中,包含ddl語句。預設 false
詳見:https://blog.csdn.net/xiaolegeaizy/article/details/100743918
2、在Kafka生産者視窗輸入消息,消費者視窗也可以看到資料
生産者視窗:
消費者視窗:
更詳細的Kafka安裝使用見下面連結:
https://blog.csdn.net/xiaolegeaizy/article/details/100736637