MySQL多種需求的備份方式

上帝De助手發表於2013-10-15

官方的使用幫助文件:http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html


備份工具mysqldump:

1、直接使用命令mysqldump可以檢視使用格式
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
2、mysqldump --help可以檢視詳細使用幫助

備份方式:
1、備份指定的1或多張表
mysqldump -h host -u user -ppassword dbname table1 table2 ... tablen > /path/to/backup.db

2、備份指定表以外的其它表
mysqldump -h host -u user -ppassword dbname --ignore-table=dbname.tablename > /path/to/backup.db
mysqldump -h host -u user -ppassword dbname --ignore-table=dbname.tablename1 --ignore-table=dbname.tablename2 > /path/to/backup.db

3、備份1個或多個資料庫
mysqldump -h host -u user -ppassword --databases dbname > /path/to/backup.db
mysqldump -h host -u user -ppassword --databases dbname1 dbname2 ... dbnameN > /path/to/backup.db

4、備份所有資料庫
mysqldump -h host -u user -ppassword --all-databases > /path/to/backup.db

5、備份單個表中的指定記錄
mysqldump -h host -u user -ppassword dbname tablename --where="SQL conditions" > /path/to/backup.db

6、備份到壓縮文件【前提是安裝了gzip的命令列工具】
mysqldump 【all-options】 | gzip > /path/to/backup.zip
 
還原方式:
上述備份的產出結果都是sql形式的文字,裡面都是sql語句,你可以直接複製出來在mysql命令列執行。【當然這樣很弱】
1、直接匯入之前匯出的檔案
mysqlimport -u root -ppassword < backup.db

2、在指定的資料庫下執行sql檔案
mysql -u root -ppassword dbname < backup.db

3、進入mysql命令列後可以使用的匯入命令
mysql>LOAD DATA LOCAL INFILE "/path/to/backup.txt" INTO TABLE products_core; [匯入的檔案格式為txt形式]
mysql>source /path/to/backup.sql;[匯入的檔案格式為sql形式]

相關文章