Canal
/ Flink CDC
等),均會基於MYSQL
的binlog
來實現。感覺網上的文章沒成體系地清楚,而今天工作上處理問題的過程中遇到了此疑問,且曾多次對此產生疑問,自然便有了這一篇,作為個人的Momo備忘筆記~
CDC
的朋友,可參見我剛參加工作,並進入巨量資料領域時的這篇科普文章~MySQL Binlog許可權需要3個許可權 :
SELECT
REPLICATION SLAVE
REPLICATION CLIENT
Binlog為什麼需要這些許可權?
Select
許可權代表允許從表中檢視資料Replication client
許可權代表允許執行show master status,show slave status,show binary logs
命令Replication slave
許可權代表允許slave主機通過此使用者連線master以便建立主從 複製關係-- https://github.com/alibaba/canal/wiki/AdminGuide
show variables like 'log_bin';
show variables like 'binlog_format';
SHOW GRANTS FOR '{userName}'@'%';
由圖可見,這顯然說明了該使用者對圖中這個庫有binlog許可權。
GRANT
SELECT
, REPLICATION SLAVE
, REPLICATION CLIENT
ON *.*
TO '{username}'@'%' IDENTIFIED BY '{password}'; -- % 可替換為 指定的 host