mysqldump命令——MySQL數據庫備份還原

 最近這兩天,由於以前設計數據庫的時候沒有注意到有的表是要建在另一臺服務器上面的(測試服務器數據庫是分佈式的,不一樣的表可能在不一樣服務器上)。如今裏面已經有不少測試數據了,又不想從新添加一遍。因此就想能不能備份出來,再恢復到目標機器上去。而後昨天的話就折騰了一下,請教同事,上網查資料。這裏把用法記錄一下。mysql

mysqldump命令:MySQL數據庫備份還原sql

 

1、經常使用操做:數據庫

備份整個數據庫服務器

格式:分佈式

mysqldump -h主機名  -P端口 -u用戶名 -p密碼 (–database) 數據庫名 > 文件名.sqlide

mysqldump -h{hostname} -P{port} -u{username} -p{password} {databasename} > {backupfile.sql}測試

例如:ui

 

代碼以下:命令行

1設計

mysqldump -hlocalhost -P3306 -uzhuchao -p123456 db_test > backfile1.sql

備份MySQL數據庫爲帶刪除表的格式

備份MySQL數據庫爲帶刪除表的格式,可以讓該備份覆蓋已有數據庫而不須要手動刪除原有數據庫。

格式:mysqldump -–add-drop-table -u{username} -p{password} {databasename} > {backfile.sql}

例如:

 

代碼以下:

1

mysqldump -–add-drop-table –uzhuchao -p123456 db_test > backfile2.sql

直接將MySQL數據庫壓縮備份

格式:mysqldump -h{hostname} -u{username} -p{password} {databasename} | gzip > {backfile.sql.gz}

例如:

 

代碼以下:

1

mysqldump –hlocalhost –uzhuchao –p123456 db_test1 | gzip > backfile3.sql.gz

備份MySQL數據庫某個(些)表

格式:mysqldump -h主機名  -P端口 -u用戶名 -p密碼 (–tables | –quick) 數據庫名 表名1 (表名2 …) > 文件名.sql (括號中的可缺省)。

mysqldump -h{hostname} (-P{port}) -u{user} -p{password} (–tables | –quick) {databasename} {table1} {table2} > {backfile.sql}

例如:

 

代碼以下:

1

2

3

4

mysqldump -hlocalhost -uzhuchao -p123456 db_test tbl_test > backfile4-1.sql

mysqldump -hlocalhost -P3306 -uzhuchao -p123456 db_test tbl_test > backfile4-2.sql

mysqldump -hlocalhost -P3306 -uzhuchao -p123456 --quick db_test tbl_test > backfile4-3.sql

mysqldump -hlocalhost -P3306 -uzhuchao -p123456 --tables db_test tbl_test1 tbl_test2 > backfile4-4.sql

同時備份多個MySQL數據庫

格式:mysqldump -h{hostname} (-P{port}) -u{username} -p{password} –databases {databasename1} {databasename2} {databasename3} > multibackfile.sql

例如: 

 

代碼以下:

1

mysqldump -hlocalhost -uzhuchao -p123456 –databases db_test1 db_test2 db_test3 > multibackfile.sql

僅僅備份數據庫結構

格式:mysqldump –no-data –databases {databasename1} {databasename2} > {structurebackfile.sql}

例如:

 

代碼以下:

1

mysqldump –no-data –databases db_test1 db_test2 > structurebackfile.sql

備份服務器上全部數據庫

格式:mysqldump –all-databases > allbackupfile.sql

 

========================================================================

 

還原MySQL數據庫的命令

格式:mysql -h{hostname} -u{username} -p{password} {databasename} < {backfile.sql}

例如:

 

代碼以下:

1

mysql -hlocalhost -uroot -p123456 db_test4 < back_file1.sql

還原壓縮的MySQL數據庫

格式:gunzip < {backfile.sql.gz} | mysql –u{username} –p{password} {databasename}

例如:

 

代碼以下:

1

gunzip < backfile.sql.gz | mysql –uzhuchao –p123456 db_test5

將數據庫轉移到新服務器

mysqldump –u{username} –p{password} {databasename} | mysql –host=*.*.*.* –C {databasename}

 

2、其餘:

一、若是端口爲默認的3306時,可省略 -P {端口號} 這一項。

 

二、命令行格式中 { } 中的內容都是變量

主機名 : {hostname}

端   口:{port}    (通常默認3306,可缺省)

用戶名:{user} {username} (如root)

密   碼:{password}

數據庫名 :{databasename}

表   名:{table}  {table1}  {table2}

文件名:{backfile.sql}

相關文章
相關標籤/搜索