mysql數據遷移採用MySQLdump工具遷移

此處以阿里雲ecs遷移至專業版RDS數據庫爲例;

該方案優點是簡單,容易上手;缺點是停機時間較長。 因此它適用於數據量不大,或者允許停機的時間較長,並且在這個時間範圍內能夠完成。

由於RDS提供的關係數據庫服務與原生的數據庫服務是完全兼容的,所以對於用戶來說,從原有數據庫遷移到RDS數據的過程,與從一個mysql服務器遷移到另外一臺mysql服務器的過程基本類似。具體的遷移流程如下:

1、 開通雲服務器服務。

2、 開通RDS服務,如果開通成功,會返回給用戶連接地址和端口,比如cloudcc.mysql.rds.aliyuncs.com:3306。

3、 先停止業務,使用MySQLdump的數據導出工具,將您線下原有數據庫數據導出爲數據文件((本步驟僅僅導出數據,不包括存儲過程,函數,觸發器)。具體命令如下:

mysqldump -h local_ip -u user_name -p –opt –default-character-set=utf8   –hex-blob db_name –skip-triggers  > /tmp/db_name.sql

 

其中

local_ip 以您真實的線下MySQL服務器IP地址代替

user_name 以您真實的數據庫用戶代替

db_name   以您真實的數據庫名代替

/tmp/db_name.sql是文件名,由您自己隨意填寫。

 

4、備份您線下原有數據庫的存儲過程、觸發器和函數(若您數據庫中沒有使用存儲過程、觸發器和函數,則跳過這步),在導出存儲過程、觸發器和函數時,需要將definer去掉,以兼容RDS。具體命令如下:

mysqldump -h local_ip -u user_name -p –opt –default-character-set=utf8   –hex-blob db_name –triggers -d -t  -R | sed -e ‘s/DEFINER[ ]*=[ ]*[^*]*\*/\*/’  > /tmp/trigger_procedure.sql

其中

local_ip 以您真實的線下MySQL服務器IP地址代替

user_name 以您真實的數據庫用戶代替

db_name   以您真實的數據庫名代替

/tmp/trigger_procedure.sql是文件名,由您自己隨意填寫。

 

5、將數據文件和存儲過程文件上傳到已經購買的雲服務器中。

6、遠程登錄到雲服務器,將剛纔上傳的數據文件導入到已購買的RDS實例中。具體命令如下:

mysql -hexample.mysql.rds.aliyuncs.com –uuserName -p dbName < /tmp/dbName.sql

其中

example.mysql.rds.aliyuncs.com:RDS實例連接地址;

user_name 以您真實的RDS數據庫用戶代替

db_name   以您真實的RDS數據庫名代替

/tmp/db_name.sql是剛纔前面您導出的數據文件名稱

 

7、遠程登錄到雲服務器,將剛纔上傳的存儲過程文件(包含存儲過程、觸發器和函數,若沒有則請跳過此步)導入到已購買的RDS實例中。具體命令如下:

mysql -h example.mysql.rds.aliyuncs.com -u userName -p dbName < /tmp/triggerProcedure.sql

其中

example.mysql.rds.aliyuncs.com:RDS實例連接地址;

user_name 以您真實的RDS數據庫用戶代替

db_name   以您真實的RDS數據庫名代替

/tmp/trigger_procedure.sql是剛纔前面您導出的存儲過程文件名稱

至此數據遷移完畢,可以對RDS正常使用。用戶可使用數據庫客戶端工具(如MySQL-Front)或第三方數據庫管理工具(如phpmyadmin)以及程序的方式,通過域名和端口號連接數據庫,在輸入正確的用戶名和密碼後即可登錄DB進行操作和開發。

此篇文章由阿里雲整理,我轉發歡迎添加大臉貓qq:203833507

二維碼


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章