在使用MySQL的CDC源表Connector前,上遊的MySQL儲存需要滿足一些版本、網路、帳號許可權等要求,還需要開啟Binlog。本文將從RDS MySQL、PolarDB MySQL和自建MySQL三種環境詳細為您介紹相關要求及操作。
RDS MySQL
網路連接配置要求
RDS和Flink全託管之間需要網路連通。
如果RDS和Flink全託管均處於同地區的同一VPC網路中,則RDS與Flink全託管的網路是連通的。
如果RDS和Flink全託管均處於不同的網路環境中,那麼您需要通過VPN網關等方式,將RDS與Flink全託管之間的網路打通。詳情請參見Flink全託管如何訪問公網?和如何訪問跨VPC的其他服務?。
MySQL伺服器配置要求
版本限制
VVR 4.0.8及以上版本的MySQL CDC Connector支援讀取5.7和8.0.x版本的MySQL,VVR 4.0.11及以上版本的MySQL CDC Connector支援讀取5.6.x、5.7.x和8.0.x版本的MySQL。您可以通過執行select version()命令來查看MySQL的版本。
需要開啟Binlog
如果傳回值為ON,則表示已開啟。
如果傳回值為OFF,則表示未開啟。如果您需要開啟Binlog,請參見本地日誌(Binlog)。
Binlog格式需要為ROW。
您可以通過show variables like "binlog_format"命令查看Binlog格式。RDS MySQL預設格式即為ROW。
binlog_row_image需要為FULL。
您可以通過show global variables like "binlog_row_image"命令查看Binlog image。RDS MySQL預設image為FULL。
為了確保RDS MySQL 5.6.x版本的正常運行,預設已開啟增量快照功能(即scan.incremental.snapshot.enabled=true),但5.6.x版本的RDS MySQL不支援關閉增量快照功能,而RDS MySQL 6.0.8和8.0.1版本的資料庫已解除該限制,即支援關閉增量快照功能。建議您不要關閉增量快照功能,因為關閉增量快照功能會鎖定MySQL資料庫,可能會對線上業務處理效能產生影響。
您可以通過執行show variables like "log_bin"命令查看Blinlog是否已開啟。
會話參數配置要求
interactive_timeout(互動逾時):對於互動式connection,伺服器在關閉互動串連之前等待活動的秒數。配置指導請參見配置MySQL interactive_timeout參數。
wait_timeout(等待逾時):對於非互動式connection,伺服器在關閉串連之前等待活動的秒數。配置指導請參見配置MySQL wait_timeout參數。
當讀取大型資料庫全量資料快照時,已建立的串連可能會在讀取表資料時逾時。您可以通過在MySQL設定檔中配置interactive_timeout和wait_timeout參數來防止這種現象。參數詳情如下:
帳號許可權配置要求
建立使用者並授予該使用者SELECT、REPLICATION SLAVE和REPLICATION CLIENT許可權,MySQL CDC同步RDS MySQL資料的過程中需要此三個許可權。詳情請參見建立帳號。
PolarDB MySQL
網路連接配置要求
PolarDB和Flink全託管之間需要網路連通。
如果PolarDB和Flink全託管均處於同地區的同一VPC網路中,則PolarDB與Flink全託管的網路是連通的。
如果PolarDB和Flink全託管均處於不同的網路環境中,您需要通過VPN網關等方式,將PolarDB與Flink全託管之間的網路打通。詳情請參見Flink全託管如何訪問公網?和如何訪問跨VPC的其他服務?。
MySQL伺服器配置要求
版本限制
VVR 4.0.8及以上版本的MySQL CDC Connector支援讀取5.7和8.0.x版本的MySQL,VVR 4.0.11及以上版本的MySQL CDC Connector支援讀取5.6、5.7和8.0.x版本的MySQL。您可以通過執行select version()命令來查看MySQL的版本。
需要開啟Binlog
如果傳回值為ON,則表示已開啟。
如果傳回值為OFF,則表示未開啟。如果您需要開啟Binlog,請參見開啟Binlog。
Binlog格式需要為ROW。
您可以通過show variables like "binlog_format"命令查看Binlog格式。PolarDB MySQL預設格式為ROW。
binlog_row_image需要為FULL。
您可以通過show global variables like "binlog_row_image"命令查看Binlog image。PolarDB MySQL預設image為FULL。
您可以通過執行show variables like "log_bin"命令查看Blinlog是否已開啟。
會話參數配置要求
interactive_timeout(互動逾時):對於互動式connection,伺服器在關閉互動串連之前等待活動的秒數。配置指導請參見設定叢集參數和節點參數。
wait_timeout(等待逾時):對於非互動式connection,伺服器在關閉串連之前等待活動的秒數。配置指導請參見設定叢集參數和節點參數。
當讀取大型資料庫全量資料快照時,已建立的串連可能會在讀取表資料時逾時。您可以通過在MySQL設定檔中配置interactive_timeout和wait_timeout參數來防止這種現象。參數詳情如下:
帳號許可權配置要求
建立一個普通使用者並授予該使用者SELECT、REPLICATION SLAVE和REPLICATION CLIENT許可權,MySQL CDC同步PolarDB MySQL資料的過程中需要此三個許可權。建立使用者並授予許可權操作詳情,請參見建立資料庫帳號。
在PolarDB控制台建立的帳號預設沒有SELECT許可權。因此您需要手動添加SELECT許可權,添加許可權詳情請參見MySQL資料庫帳號許可權管理。
自建MySQL
網路連接配置要求
自建MySQL和Flink全託管之間需要網路連通。
如果您的MySQL部署在阿里雲上,且和Flink全託管均處於同地區的同一VPC網路中,則MySQL與Flink全託管的網路是連通的。
如果您的MySQL不在阿里雲上,則需要有公網地址,使得Flink全託管能夠訪問該地址。因此您需要通過VPN網關將自建MySQL和Flink全託管的網路打通。詳情請參見Flink全託管如何訪問公網?。
MySQL伺服器配置要求
版本限制
VVR 4.0.8及以上版本的MySQL CDC Connector支援讀取5.7和8.0.x版本的MySQL,VVR 4.0.11及以上版本的MySQL CDC Connector支援讀取5.6.x、5.7.x和8.0.x版本的MySQL。您可以通過執行select version()命令來查看MySQL的版本。
需要開啟Binlog
如果傳回值為ON,則表示已開啟。
如果傳回值為OFF,則表示未開啟。如果您需要開啟Binlog,請參見開啟Binlog。
Binlog格式需要為ROW。
您可以通過show variables like "binlog_format"命令查看Binlog格式。如果不為ROW,則需要將Binlog格式設定為ROW,詳情請參見設定Binlog格式。
binlog_row_image需要為FULL。
您可以通過show global variables like "binlog_row_image"命令查看Binlog image。如果不為FULL,則需要將binlog_row_image設定為FULL,詳情請參見binlog_row_image設定。
您可以通過執行show variables like "log_bin"命令查看Blinlog是否已開啟。
會話參數配置要求
interactive_timeout(互動逾時):對於互動式connection,伺服器在關閉互動串連之前等待活動的秒數。配置指導請參見配置MySQL interactive_timeout參數。
wait_timeout(等待逾時):對於非互動式connection,伺服器在關閉串連之前等待活動的秒數。配置指導請參見配置MySQL wait_timeout參數。
當為大型資料庫讀取全量資料時,已建立的串連可能會在讀取表資料時逾時。您可以通過在MySQL設定檔中配置interactive_timeout和wait_timeout參數來防止這種現象。參數詳情如下:
帳號許可權配置要求
建立帳號並設定密碼。
詳情請參見建立使用者。
配置使用者要求的權限。
*.* 表示授權帳號所有資料庫中所有表均擁有上述許可權。您也可以指定授權帳號給單個資料庫上述許可權,即mydb.*。
確定使用者權限。
建立一個使用者並授予該使用者SELECT、REPLICATION SLAVE和REPLICATION CLIENT許可權。操作步驟如下:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'user' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;