# 必要條件

在您可以登陸或複寫資料之前，確認完成下列先決條件：

* 在 資料移動閘道 伺服器安裝必要 driver

  資訊備註

  只有在您選擇使用 資料移動閘道 時，才需要此。如需關於 資料移動閘道 福利以及何時需要的資訊，請參閱 [Qlik Data Gateway - Data Movement](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm)。

  請注意，資料移動閘道 無法用於 Qlik Talend Cloud 啟動器 訂閱。

* 在資料來源授予必要權限

* 設定資料來源連接器

## 受支援的版本

受支援的 MySQL 版本如下：

* MySQL 社區版
* MySQL 標準版
* MySQL 企業版
* MySQL Cluster Carrier Grade 版

## 驅動程式的設定

您可以使用驅動程式安裝公用程式 (建議) 或手動安裝 driver。只能在不太可能發生的事件 (您在使用驅動程式安裝公用程式時遇到問題) 中嘗試手動安裝。

### 使用驅動程式安裝公用程式來安裝驅動程式

此區段描述如何安裝所需的 driver。該流程涉及執行將會自動下載、安裝並設定所需 driver 的指令碼。您也可以執行指令碼，以根據需求更新並解除安裝 driver。

### 準備安裝

* 確認 Python 3.6 或更高版本安裝於 資料移動 閘道伺服器。

  Python 會預先安裝在大部分的 Linux 發行版。您可以執行下列命令，以查看哪個 Python 版本安裝在您的系統上：

  python3 --version

### 安裝 driver

若要下載並安裝 driver：

1. 在 資料移動 閘道機器上，將工作目錄變更為：

   opt/qlik/gateway/movement/drivers/bin

2. 執行下列命令：

   語法：

   ./install mysql

   若無法下載 driver (由於存取限制或技術問題)，將會顯示訊息，指示您到哪裡下載 driver 以及在 資料移動 閘道機器上的何處複製。完成後，再次執行 install mysql 命令。

   否則，就會顯示 driver 的 EULA。

3. 執行下列其中一個動作：

   * 重複按下 [Enter] 以緩慢瀏覽 EULA。
   * 重複按下空格鍵以快速瀏覽 EULA。
   * 按下 q 以結束授權文字並呈現 EULA 接受選項。

4. 執行下列其中一個動作：

   * 輸入「y」並按下 [Enter] 以接受 EULA 並開始安裝。

   * 輸入「n」並按下 [Enter] 以拒絕 EULA 並退出安裝。

   * 輸入「v」並按下 [Enter] 以再次檢視 EULA。

   將會安裝 driver。

### 更新 driver

若您想要在安裝提供的 driver 之前解除安裝先前的 driver 版本，請執行更新命令。

若要下載並更新 driver：

1. 在 資料移動 閘道機器上，將工作目錄變更為：

   opt/qlik/gateway/movement/drivers/bin

2. 執行下列命令：

   語法：

   ./update mysql

   若無法下載 driver (由於存取限制或技術問題)，將會顯示訊息，指示您到哪裡下載 driver 以及在 資料移動 閘道機器上的何處複製。完成後，再次執行 update mysql 命令。

   否則，就會顯示 driver 的 EULA。

3. 執行下列其中一個動作：

   * 重複按下 [Enter] 以緩慢瀏覽 EULA。
   * 重複按下空格鍵以快速瀏覽 EULA。
   * 按下 q 以結束授權文字並呈現 EULA 接受選項。

4. 執行下列其中一個動作：

   * 輸入「y」並按下 [Enter] 以接受 EULA 並開始安裝。
   * 輸入「n」並按下 [Enter] 以拒絕 EULA 並退出安裝。
   * 輸入「v」並按下 [Enter] 以從頭檢閱 EULA。

   將會解除安裝舊版 driver，並安裝新版 driver。

### 解除安裝 driver

若您想要解除安裝 driver，請執行解除安裝命令。

若要解除安裝 driver：

1. 停止設定為使用此連接器的所有任務。

2. 在 資料移動 閘道機器上，將工作目錄變更為：

   opt/qlik/gateway/movement/drivers/bin

3. 執行下列命令：

   語法：

   ./uninstall mysql

   將會解除安裝 driver。

### 手動安裝驅動程式

只有在自動驅動程式安裝無法成功完成時，才能嘗試手動安裝 driver。

安裝 資料移動閘道 後，下載 mysql-connector-odbc-&lt;version&gt;.x86\_64.rpm 驅動程式。您可以在 /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml 的 binary-artifacts 之下找到支援版本的直接下載連結。下載完成後，將 RPM 複製到 資料移動閘道 機器。

在 Data Movement gateway 伺服器上，開啟 shell prompt 並進行以下項目：

1. 停止 Data Movement gateway 服務：

   sudo systemctl stop repagent

2. 可自選，確認服務已停止：

   sudo systemctl status repagent

   狀態應如下所示：

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. 將驅動程式安裝在 Data Movement gateway 機器。

4. 變更任務目錄至 &lt;Data Movement gateway-Install-Dir&gt;/bin。

5. 複製驅動程式位置至 `site_arep_login.sh` 檔案：

   `echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib64" >> site_arep_login.sh`

   這將新增驅動程式至「LD\_LIBRARY\_PATH」並更新位於 site\_arep\_login.sh 檔案的驅動程式位置。

6. 可自選，確認已複製驅動程式位置：

   ```
   cat site_arep_login.sh
                           
   ```

7. 確定 /etc/odbcinst.ini 檔案含有 MySQL 的項目，如以下範例所示：

   ` [MySQL ODBC 8.0 Unicode Driver]
                            ` ` Driver   = /usr/lib64/libmyodbc8w.so
                            ` ` UsageCount  = 1
                            `

8. 開始 Data Movement gateway 服務：

   sudo systemctl start repagent

9. 可自行選擇確認服務已開始：

   sudo systemctl status repagent

   狀態應如下所示：

   Active: active (running) since &lt;timestamp&gt; ago

## 連接埠

依照預設值，在 Data Movement gateway 伺服器上需開啟連接埠 3306 才能進行傳出通訊。您可在連接器設定中變更此資訊。

## 一般必要條件

確保已符合以下先決條件：

* 有 [必要權限](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/MySQL/security-req-mysql-source.htm) 的 MySQL 帳號。

* MySQL 8：擷取變更的標準驗證

* 認證 MySQL 版本支援暫時檔案類型（MySQL 5.6 引入）的分數值。因此，不再支援舊暫時檔案類型格式的 移動。

  資訊備註請注意，升級至支援暫時檔案類型分數值的 MySQL 版本*不會*自動升級暫時檔案類型格式。必須分開進行。這也適用從 MariaDB 10.1 升級的情況。針對升級暫時檔案類型格式的說明，請參閱廠商線上說明。

## 從客戶安裝的 MySQL 資料庫擷取變更

下一節說明從內部部署 MySQL 資料庫擷取變更的必要條件。

### 啟用 binary 記錄

要啟用 binary 登入（CDC 移動 必須），以下參數必須組態於 MySQL’s `my.ini` (Windows) 或 `my.cnf` (UNIX) 檔案。

Binary 登入參數

| 參數 | 值 |
| --- | --- |
| server\_id | 任何從 1 開始的值<br><br>範例：<br><br>` server_id=1<br>` |
| log-bin=&lt;path&gt; | 到 binary 記錄檔按（無延伸）的路徑<br><br>範例：<br><br>` log-bin=E:\MySql_Logs\BinLog<br>` |
| binlog\_format | 必須為：<br><br>` binlog_format=row<br>` |
| binlog\_expire\_logs\_seconds | 為了預防磁碟空間問題，強烈建議不要使用預設值 (2592000)。<br><br>範例 (5 天)：<br><br>` binlog_expire_logs_seconds=432000<br>` |
| binlog\_row\_image | 必須為：<br><br>` binlog_row_image=full<br>` |

### 叢集必要條件

要 移動 叢集 (NDB) 表格 (透過連結至任何叢結點)，以下參數必須組態於 MySQL’s my.ini (Windows) 或 my.cnf (UNIX) 檔案。

資訊備註

使用 Percona 作為來源時，不需要進行此區段說明的程序。

叢集參數

| 參數 | 值 |
| --- | --- |
| ndb\_log\_bin | 必須為：<br><br>`ndb_log_bin=on`<br><br>確保叢集表格變更會被記錄至 binary 記錄中。 |
| ndb\_log\_update\_as\_write | 必須為：<br><br>`ndb_log_update_as_write=OFF`<br><br>預防更新在 binary 記錄中被寫成插入。 |
| ndb\_log\_updated\_only | 必須為：<br><br>`ndb_log_updated_only=OFF`<br><br>確保 binary 記錄會包含整列而不只是已變更的欄。 |

## 從 Google Cloud for MySQL 擷取變更

#### Binary 記錄

要擷取變更必須使用 binary 登入。要檢查是否啟用 binary 登入（預設），請確定資料庫的 `binlog_row_image` 參數設定 `完整`.

#### 複寫

複製讓主資料庫伺服器的資料能夠複製到一個或更多次要伺服器。

能從主要或次要伺服器登陸資料。

要自是要伺服器擷取變更，binary 記錄參數 `log_slave_updates` 必須設定為 ` true  `(`1`).

進一步閱讀：https://cloud.google.com/sql/docs/mysql/replication

## 從 Amazon RDS for MySQL 和 Amazon Aurora for MySQL 擷取變更

#### Binary 記錄

若要為 MySQL 設定 Amazon RDS 或為 CDC 的 MySQL 設定 Amazon Aurora：

1. 按照 AWS 說明中的說明建立新的參數群組 (請參閱二進位記錄格式區段)。

2. 建立新的參數群組時，設定： `binlog_format=row`

3. 儲存新的參數群組。

4. 若您有 MySQL 之 Amazon RDS 的現有執行個體，編輯該執行個體以使用上述步驟 2 中指定的參數。若您正在佈建 MySQL 之 Amazon RDS 的新執行個體，參考上述步驟 1 中建立的新參數群組。

5. 最後，確認啟用自動備份 (預設情況)。

進一步閱讀：https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER\_LogAccess.MySQL.BinaryFormat.html

#### 複寫

複製讓主資料庫伺服器的資料能夠複製到一個或更多次要伺服器。

能從主要或次要伺服器登陸資料。

要自是要伺服器擷取變更，binary 記錄參數 `log_slave_updates` 必須設定為 ` true  `(`1`).

進一步閱讀：https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER\_MySQL.Replication.html

## 從適用於 MySQL 的 Microsoft Azure 資料庫擷取變更

要擷取變更必須使用 binary 登入。要檢查是否啟用 binary 登入（預設），請確定資料庫的 `binlog_row_image` 參數設定 `完整`.