當數據遷移/同步/訂閱的源庫為自建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