當資料移轉/同步/訂閱的源庫為自建MySQL時,為滿足預檢查階段對源庫的要求,保障任務的順利執行,在正式配置之前,您需要在自建MySQL資料庫上建立帳號並設定binlog。
適用情境及許可權參考
情境 | 許可權參考 |
資料移轉的源庫為自建MySQL,且要執行增量資料移轉。 | 待遷移對象的SELECT許可權。 REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW。 建庫建表的許可權,以允許DTS建立庫dts,用於記錄遷移期間的心跳資料。 |
資料同步的源庫為自建MySQL。 | 待同步對象的SELECT許可權。 REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW。 建庫建表的許可權,以允許DTS建立庫dts,用於記錄同步期間的心跳資料。 |
資料訂閱的源庫為自建MySQL。 | 待訂閱對象的SELECT許可權。 REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW。 建庫建表的許可權,以允許DTS建立庫dts,用於記錄訂閱期間的心跳資料。 |
影響
執行該操作需要重啟MySQL服務,為避免影響您的業務使用,請在業務低峰期操作。
操作步驟
登入自建MySQL資料庫。
在自建MySQL資料庫中建立用於資料移轉/同步的帳號。
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
說明username:待建立的帳號。
host:允許該帳號登入的主機,如果允許該帳號從任意主機登入資料庫,可以使用百分比符號(%)。
password:帳號的密碼。
例如,建立一個帳號,帳號名為dtsmigration,密碼為Dts123456,並允許從任意主機登入資料庫,命令如下。
CREATE USER 'dtsmigration'@'%' IDENTIFIED BY 'Dts123456';
對帳號進行授權操作,所需授與權限請參見適用情境及許可權參考。
對帳號授予指定庫表的許可權。
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
對帳號授予建庫建表的許可權。
GRANT CREATE ON *.* TO 'username'@'host' WITH GRANT OPTION;
說明privileges:授予該帳號的操作許可權,如SELECT、INSERT、UPDATE等,如果要授予該帳號所有許可權,則使用ALL。
databasename:資料庫名。如果要授予該帳號具備所有資料庫的操作許可權,則使用星號(*)。
tablename:表名。如果要授予該帳號具備所有表的操作許可權,則使用星號(*)。
username:待授權的帳號。
host:允許該帳號登入的主機,如果允許該帳號從任意主機登入,則使用百分比符號(%)。
WITH GRANT OPTION:授予該帳號使用GRANT命令的許可權,該參數為可選。
例如,授予dtsmigration帳號具備所有資料庫和表的所有許可權,並允許從任意主機登入資料庫,命令如下。
GRANT ALL ON *.* TO 'dtsmigration'@'%';
開啟並設定自建MySQL資料庫的binlog。
Linux作業系統操作步驟如下:
使用
vim
命令,修改設定檔my.cnf中的如下參數。log_bin=mysql_bin binlog_format=row server_id=2 #建議設定為大於1的整數 binlog_row_image=full #當自建MySQL的版本大於5.6時,則必須設定該項。
修改完成後,重啟MySQL進程。
/etc/init.d/mysqld restart
說明您也可以根據實際情況,使用其他命令或方式進行重啟。
Windows作業系統操作步驟如下:
修改設定檔my.ini中的如下參數。
log_bin=mysql_bin binlog_format=row server_id=2 #建議設定為大於1的整數 binlog_row_image=full #當自建MySQL的版本大於5.6時,則必須設定該項。
修改完成後,重啟MySQL服務。
說明您可以通過Windows中的服務管理員重啟服務,或使用如下命令重啟服務:
net stop mysql net start mysql