全部產品
Search
文件中心

:配置MySQL

更新時間:Jul 13, 2024

在使用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的版本。

  • 重要

    為了確保RDS MySQL 5.6.x版本的正常運行,預設已開啟增量快照功能(即scan.incremental.snapshot.enabled=true),但5.6.x版本的RDS MySQL不支援關閉增量快照功能,而RDS MySQL 6.0.8和8.0.1版本的資料庫已解除該限制,即支援關閉增量快照功能。建議您不要關閉增量快照功能,因為關閉增量快照功能會鎖定MySQL資料庫,可能會對線上業務處理效能產生影響。

  • 需要開啟Binlog

  • 您可以通過執行show variables like "log_bin"命令查看Blinlog是否已開啟。

    • 如果傳回值為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。

會話參數配置要求

    當讀取大型資料庫全量資料快照時,已建立的串連可能會在讀取表資料時逾時。您可以通過在MySQL設定檔中配置interactive_timeoutwait_timeout參數來防止這種現象。參數詳情如下:

    • interactive_timeout(互動逾時):對於互動式connection,伺服器在關閉互動串連之前等待活動的秒數。配置指導請參見配置MySQL interactive_timeout參數

    • wait_timeout(等待逾時):對於非互動式connection,伺服器在關閉串連之前等待活動的秒數。配置指導請參見配置MySQL 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

  • 您可以通過執行show variables like "log_bin"命令查看Blinlog是否已開啟。

    • 如果傳回值為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。

會話參數配置要求

    當讀取大型資料庫全量資料快照時,已建立的串連可能會在讀取表資料時逾時。您可以通過在MySQL設定檔中配置interactive_timeoutwait_timeout參數來防止這種現象。參數詳情如下:

    • interactive_timeout(互動逾時):對於互動式connection,伺服器在關閉互動串連之前等待活動的秒數。配置指導請參見設定叢集參數和節點參數

    • wait_timeout(等待逾時):對於非互動式connection,伺服器在關閉串連之前等待活動的秒數。配置指導請參見設定叢集參數和節點參數

帳號許可權配置要求

    建立一個普通使用者並授予該使用者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

  • 您可以通過執行show variables like "log_bin"命令查看Blinlog是否已開啟。

    • 如果傳回值為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設定

會話參數配置要求

    當為大型資料庫讀取全量資料時,已建立的串連可能會在讀取表資料時逾時。您可以通過在MySQL設定檔中配置interactive_timeoutwait_timeout參數來防止這種現象。參數詳情如下:

    • interactive_timeout(互動逾時):對於互動式connection,伺服器在關閉互動串連之前等待活動的秒數。配置指導請參見配置MySQL interactive_timeout參數

    • wait_timeout(等待逾時):對於非互動式connection,伺服器在關閉串連之前等待活動的秒數。配置指導請參見配置MySQL wait_timeout參數

帳號許可權配置要求

    建立一個使用者並授予該使用者SELECT、REPLICATION SLAVE和REPLICATION CLIENT許可權。操作步驟如下:

    1. 建立帳號並設定密碼。

    2. CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
    3. 詳情請參見建立使用者

    4. 配置使用者要求的權限。

    5.  GRANT SELECT, REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'user' IDENTIFIED BY 'password'; 
    6. *.* 表示授權帳號所有資料庫中所有表均擁有上述許可權。您也可以指定授權帳號給單個資料庫上述許可權,即mydb.*

    7. 確定使用者權限。

    8. FLUSH PRIVILEGES;