117
魔獸
使用 mysqldump 遷移 MySQL 數據__遷移數據_快速入門(MySQL)_雲數據庫 RDS 版-阿裏雲
使用 mysqldump 工具的優點是簡單易用、容易上手,缺點是停機時間較長,因此它適用於數據量不大,或者允許停機的時間較長的情況。
背景信息
由於 RDS 提供的關係型數據庫服務與原生的數據庫服務完全兼容,所以對用戶來說,將原有數據庫遷移到 RDS 實例的過程,與從一個 MySQL 服務器遷移到另外一台 MySQL 服務器的過程基本類似。
前提條件
操作步驟
在正式遷移之前,需要先在本地數據庫中創建遷移賬號,並將要遷移的數據庫的讀寫權限授權給遷移賬號。
在本地數據庫中創建遷移賬號。
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
參數說明:
- username:要創建的賬號
- host:指定該賬號登錄數據庫的主機。如果是本地用戶可以使用 localhost,如果想讓該用戶從任意主機登錄,可以使用通配符 %
- password:該賬號的登錄密碼
例:要創建賬號為 William,密碼為 Changme123 的賬號從任意主機登錄本地數據庫,命令如下:
CREATE USER 'William'@'%' IDENTIFIED BY 'Changme123';
在本地數據庫中給遷移賬號授權。
GRANT SELECT ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
GRANT REPLICATION SLAVE ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
參數說明:
- privileges:該賬號的操作權限,如 SELECT、INSERT、UPDATE 等。如果要授權該賬號所有權限,則使用 ALL
- databasename:數據庫名。如果要授權該賬號所有的數據庫權限,則使用通配符 *
- tablename:表名。如果要授權該賬號所有的表權限,則使用通配符 *
- username:要授權的賬號名
- host:授權登錄數據庫的主機名。如果是本地用戶可以使用 localhost,如果想讓該用戶從任意主機登錄,可以使用通配符 %
- WITH GRANT OPTION:授權該賬號能使用GRANT命令,該參數為可選
例:授權賬號 William 對所有數據庫和表的所有權限,並可以從任意主機登錄本地數據庫,命令如下。
GRANT ALL ON *.* TO 'William'@'%';
關閉 MySQL 進程。
$mysql_dir/bin/mysqladmin -u root -p shutdown
其中,mysql_dir 為MySQL安裝目錄。
使用 mysqldump 的數據導出工具,將本地數據庫數據導出為數據文件。
說明: 本步驟僅僅導出數據,不包括存儲過程、觸發器及函數。
mysqldump -h localIp -u userName -p --opt --default-character-set=utf8 --hex-blob dbName --skip-triggers > /tmp/dbName.sql
參數說明:
- localIp:本地數據庫服務器 IP 地址
- userName:本地數據庫的遷移賬號
- dbName:需要遷移的數據庫名
- /tmp/dbName.sql:備份生成的文件名
使用 mysqldump 導出存儲過程、觸發器和函數。
說明: 若數據庫中沒有使用存儲過程、觸發器和函數,可跳過此步驟。在導出存儲過程、觸發器和函數時,需要將 definer 去掉,以兼容 RDS。
mysqldump -h localIp -u userName -p --opt --default-character-set=utf8 --hex-blob dbName -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]**/*/' > /tmp/triggerProcedure.sql
參數說明:
- localIp:本地數據庫服務器 IP 地址
- userName:本地數據庫的遷移賬號
- dbName:需要遷移的數據庫名
- /tmp/triggerProcedure.sql:備份生成的文件名
將數據文件和存儲過程文件上傳到 ECS 上。
本例以文件上傳到如下路徑為例。
/tmp/dbName.sql
/tmp/triggerProcedure.sql
登錄 ECS,將數據文件和存儲過程文件導入到目標 RDS 中。
mysql -h intranet4example.mysql.rds.aliyuncs.com –u userName -p dbName < /tmp/dbName.sql
mysql -h intranet4example.mysql.rds.aliyuncs.com -u userName -p dbName < /tmp/triggerProcedure.sql
參數說明:
- intranet4example.mysql.rds.aliyuncs.com:RDS 實例連接地址,本例以內網地址為例
- userName:RDS 數據庫的遷移賬號
- dbName:需要導入的數據庫名
- /tmp/dbName.sql:要導入的數據文件名
- /tmp/triggerProcedure.sql:要導入的存儲過程文件名
最後更新:2016-12-20 10:37:42
上一篇:
使用 DTS 遷移 MySQL 數據__遷移數據_快速入門(MySQL)_雲數據庫 RDS 版-阿裏雲
下一篇:
壓縮數據__遷移數據_快速入門(MySQL)_雲數據庫 RDS 版-阿裏雲
其他風險防控API__業務風險防控API_API手冊_數據風控-阿裏雲
數據格式__API介紹_文字識別_人工智能圖像類-阿裏雲
SecurityPreference__數據類型_RAM API文檔_訪問控製-阿裏雲
處理-使用訪問日誌統計__最佳實踐_日誌服務-阿裏雲
主機監控__快速入門_雲監控-阿裏雲
獲取鏡像列表__SDK接口說明_Java版SDK_批量計算-阿裏雲
隊列模型名詞解釋__產品名詞解釋_產品簡介_消息服務-阿裏雲
刪除消息__隊列使用幫助_控製台使用幫助_消息服務-阿裏雲
人臉技術服務簡介__人臉技術服務_人工智能圖像類-阿裏雲
3.2 創建和修改表組__第三章 DDL_使用手冊_分析型數據庫-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲