1. 程式人生 > >git-canal:錯誤修改

git-canal:錯誤修改

問題:2016-05-04 22:53:48.848 [destination = example , address = /127.0.0.1:3306 , EventParser] ERROR c.a.otter.canal.parse.inbound.mysql.MysqlEventParser - dump address /127.0.0.1:3306 has an error, retrying. caused by
com.alibaba.otter.canal.parse.exception.CanalParseException: command : ‘show master status’ has an error! pls check. you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation
2016-05-04 22:53:48.852 [destination = example , address = /127.0.0.1:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:example[com.alibaba.otter.canal.parse.exception.CanalParseException: command : ‘show master status’ has an error! pls check. you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation


解:首先看錯誤可以猜測是許可權問題,所以
1:給使用者重新賦予許可權
這裡寫圖片描述
檢視許可權:(select * from mysql.user where user=’canal’ \G)
這裡寫圖片描述
用canal使用者檢視show master status
這裡寫圖片描述
看到還是為空,所以可以確定不是許可權問題。
2:看下mysql的配置檔案(在window下是.ini檔案)
看到檔名是my-default.ini,裡面也配置了
log-bin=mysql-bin #新增這一行就ok
binlog-format=ROW #選擇row模式
server_id=1 #配置mysql replaction需要定義,不能和canal的slaveId重複
這三個,修改下名字,可能mysql沒有讀這個檔案。改為my.ini檔案。重啟。
重啟如果有錯誤,則在mysql裡找.err檔案,裡面有錯誤日誌

執行show master status這裡寫圖片描述
顯示資訊了,啟動下sh bin/start.sh
看日誌:tail -f logs/example/example.log
沒有錯誤了,成功。