系統升級之Mysql數據垮庫遷移

場景
系統升級時,需要將1.0的mysql數據遷移2.0,但是相關的表結構可能發生了改變,如果不使用程序,使用sql + mysql工具實現數據的遷移。

導出數據

使用mysqldump命令,將數據導出到文件:

mysqldump -u test-p -h localhost -P 3306 --complete-insert --extended-insert=FALSE --set-gtid-purged=OFF --lock-tables=false --databases=mydb table_1 table_2 > dump_tmp_table_1.sql;

-u:用戶
-p:使用密碼,稍後會讓你輸入
-h:mysql所在的機器
-P:大寫,端口,默認3306
–no-create-info:不包含建表語句
–lock-tables:是否鎖表,爲了維護數據一致性,在備份時,設置爲true,避免dump期間對錶寫操作

如果表結構變了,如果2.0對table_1增減了字段,或更名了字段,該如何處理?

場景:mydb中的表user(id,name,phone),需要將數據遷入新表mydb_new.user_new(id,name,mobile,age)

  1. 在舊庫創建臨時表user_tmp(id,name,mobile,age)
create temporary table user_tmp select id,name,phone as mobile from user;
  1. 使用mysqldump命令,導出臨時表的數據
mysqldump -u test -p -h localhost -P 3306 --complete-insert --extended-insert=FALSE --set-gtid-purged=OFF --lock-tables=false --databases=mydb user_tmp > dump_tmp_user.sql;

然後按照下面的步驟導入數據到新表mydb_new.user_new。

導入數據

使用mysql命令就可以導入sql文件

mysql -u test-p -h localhost -P 3306 mydb_new < dump_tmp_table_1.sql;

-u:用戶
-p:使用密碼,稍後會讓你輸入
-h:mysql所在的機器
-P:大寫,端口,默認3306

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