宿州做企業(yè)網(wǎng)站學生制作個人網(wǎng)站
CDC(Change Data Capture)即數(shù)據(jù)變更抓取,通過源端數(shù)據(jù)源開啟CDC,ROMA Connect 可實現(xiàn)數(shù)據(jù)源的實時數(shù)據(jù)同步以及物理表的物理刪除同步。這里介紹通過開啟Binlog模式CDC功能。
注意:1、使用MYSQL8.0及以上版本。
2、不支持采集二進制類型的字段例如:TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB
一、登錄數(shù)據(jù)庫
需要用數(shù)據(jù)庫管理員root賬戶進行CDC功能配置,登錄root賬戶:
mysql -uroot -p
回車輸入數(shù)據(jù)庫密碼。
二、查看數(shù)據(jù)庫是否已經(jīng)開啟了Binlog
這里先查看是否開啟了Binlog,因為如果數(shù)據(jù)庫配置過雙主或者主從庫那么一般情況下是已經(jīng)開啟了,可以直接跳到第四步。
執(zhí)行以下命令查看數(shù)據(jù)庫是否開啟了Binlog:
show variables like 'log_bin';
若變量log_bin的值為“ON”則說明Binlog已開啟,執(zhí)行以下SQL命令檢查相關(guān)參數(shù)的配置是否符合要求:
show variables like '%binlog_format%';
show variables like '%binlog_row_image%';
變量binlog_format的值應該為“ROW”,變量binlog_row_image的值應該為“FULL” 則代表已經(jīng)配置過Binlog無需重復配置,直接跳到第四步。
三、開啟Binlog
如果上面經(jīng)過 “show variables like ‘log_bin’; ”查詢,結(jié)果為OFF 或者下面的條件查詢不滿足,建議直接重新配置Biglog
3.1 配置前先退出在命令窗口輸入:quit 退出數(shù)據(jù)庫
3.2 使用vi 命令編輯MYSQL配置文件(Linux)
這里以linux為例,windows server 系統(tǒng)配置文件在安裝目錄,my.ini
vi /etc/my.cnf
輸入“i”進入修改模式,在配置文件中增加:
server-id = 123 # 應為大于1的整數(shù),根據(jù)實際設(shè)置,注意在創(chuàng)建數(shù)據(jù)集成任務時設(shè)置的“Server Id”值需要此處設(shè)置的值不同
log_bin = mysql-bin #
binlog_format = row
binlog_row_image = full
expire_logs_days = 10 # Binlog日志文件保留時間,超過保留時間的Binlog日志會被自動刪除,應保留至少10天的日志文件
gtid_mode = on # MYSQL 版本大于5.6.5時添加,否則刪除
enforce_gtid_consistency = on # MYSQL 版本大于5.6.5時添加,否則刪除
按Esc退出編輯模式,輸入“:wq”保存并退出。
3.3重啟數(shù)據(jù)庫,并返回到第二步查詢,驗證設(shè)置是否生效
重啟數(shù)據(jù)庫:
service mysqld restart
返回第二步查詢驗證
四、創(chuàng)建ROMA Connect連接數(shù)據(jù)庫的用戶
4.1 重新使用root賬戶登錄數(shù)據(jù)庫(步驟略)
4.2 創(chuàng)建賬戶:
CREATE USER 'wyzx_data_train'@'%' IDENTIFIED BY 'password';
wyzx_data_train:是創(chuàng)建的用戶名,自定義
% :是任意IP都可以登錄
password : 賬戶密碼,自定義
4.3 修改數(shù)據(jù)庫連接用戶的密碼認證
mysql8.0版本 后都需要修改密碼認證
ALTER USER wyzx_data_train IDENTIFIED WITH mysql_native_password BY 'password';
flush privileges;
wyzx_data_train: 上面創(chuàng)建的用戶名
flush privileges; 最后刷新權(quán)限
4.3 為賬戶授權(quán)
grant select, replication slave, replication client on *.* to 'wyzx_data_train'@'%';
grant:用戶權(quán)限管理命令,可以管理用戶訪問哪些庫哪些表,管理用戶對表的操作(SELECT、CREATE、DELETE、DELETE、ALTER等詳見下),管理用戶登錄的ip和域名,限制用戶自己的權(quán)限是否可以授權(quán)給別的用戶等。
select, replication slave, replication client:等等是要授權(quán)的用戶權(quán)限,可以使用全部權(quán)限 all privileges
on:表示這些權(quán)限對哪些數(shù)據(jù)庫和表生效,格式:數(shù)據(jù)庫名.表名,這里寫“*”表示所有數(shù)據(jù)庫,所有表。如果我要指定將權(quán)限應用到test庫的user表中,可以這么寫:test.user
to:將權(quán)限授予哪個用戶。格式:”用戶名”@”登錄IP或域名”。%表示沒有限制,在任何主機都可以登錄。比如:”yangxin”@”192.168.0.%”,表示yangxin這個用戶只能在192.168.0IP段登錄
另外有with grant option:
with grant option:表示允許用戶將自己的權(quán)限授權(quán)給其它用戶
**注意:
1、可以使用GRANT給用戶添加權(quán)限,權(quán)限會自動疊加,不會覆蓋之前授予的權(quán)限,比如你先給用戶添加一個SELECT權(quán)限,后來又給用戶添加了一個INSERT權(quán)限,那么該用戶就同時擁有了SELECT和INSERT權(quán)限。
2、如果on不是所有庫的所有表模式,那么應該注意授權(quán)的權(quán)限,有些權(quán)限不能針對某個庫某個表授權(quán),會報錯:“incorrect usage of db grant and global privileges”。 那么根據(jù)上面一條的疊加規(guī)則可以分開授權(quán),例如:
grant select, on my_db.* to 'wyzx_data_train'@'%';
grant replication slave, replication client on my_db.* to 'wyzx_data_train'@'%';
**
授權(quán)附錄:
Privilege | Column | Context |
---|---|---|
ALL [PRIVILEGES] | Synonym for “all privileges” | Server administration |
ALTER | Alter_priv | Tables |
ALTER ROUTINE | Alter_routine_priv | Stored routines |
CREATE | Create_priv | Databases, tables, or indexes |
CREATE ROUTINE | Create_routine_priv | Stored routines |
CREATE TABLESPACE | Create_tablespace_priv | Server administration |
CREATE TEMPORARY TABLES | Create_tmp_table_priv | Tables |
CREATE USER | Create_user_priv | Server administration |
CREATE VIEW | Create_view_priv | Views |
DELETE | Delete_priv | Tables |
DROP | Drop_priv | Databases, tables, or views |
EVENT | Event_priv | Databases |
EXECUTE | Execute_priv | Stored routines |
FILE | File_priv | File access on server host |
GRANT OPTION | Grant_priv | Databases, tables, or stored routines |
INDEX | Index_priv | Tables |
INSERT | Insert_priv | Tables or columns |
LOCK TABLES | Lock_tables_priv | Databases |
PROCESS | Process_priv | Server administration |
PROXY | See proxies_priv table | Server administration |
REFERENCES | References_priv | Databases or tables |
RELOAD | Reload_priv | Server administration |
REPLICATION CLIENT | Repl_client_priv | Server administration |
REPLICATION SLAVE | Repl_slave_priv | Server administration |
SELECT | Select_priv | Tables or columns |
SHOW DATABASES | Show_db_priv | Server administration |
SHOW VIEW | Show_view_priv | Views |
SHUTDOWN | Shutdown_priv | Server administration |
SUPER | Super_priv | Server administration |
TRIGGER | Trigger_priv | Tables |
UPDATE | Update_priv | Tables or columns |
USAGE | Synonym for “no privileges” | Server administration |