1. 程式人生 > >數據庫備份和恢復

數據庫備份和恢復

file str ase 數據庫 .sql 使用 geo spec ecif

mysqldump命令備份:將數據庫中的數據備份成一個文本文件,表結構和表中的數據將存儲在生成的文本中。

->工作原理:先查出需要備份的表結構,再在文本文件中生成一個create語句,然後將所有記錄轉換為一條insert語句。create語句和insert語句都是為了以後恢復時使用。

->備份和恢復都在linux的root權限下進行,註意不是mysql下。

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

例子: mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

->還原MySQL數據庫的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql 註意數據庫名必須要存在,因為備份只備份表結構create和表數據insert

->備份MySQL數據庫為帶刪除表的格式,能夠讓該備份覆蓋已有數據庫而不需要手動刪除原有數據庫。
mysqldump --add-drop-table -uusername -ppassword databasename > backupfile.sql

->直接將MySQL數據庫壓縮備份
mysqldump -hhostname -uusername -ppassword databasename | gzip

> backupfile.sql.gz

->還原壓縮的MySQL數據庫
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

->備份MySQL數據庫某個(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

->同時備份多個MySQL數據庫
mysqldump -hhostname -uusername -ppassword --databases

databasename1 databasename2 databasename3 > multibackupfile.sql

--databases, -B: 用於備份多個數據庫,如果沒有該選項,mysqldump把第一個名字參數作為數據庫名,後面的作為表名。使用該選項,

->僅僅備份數據庫結構
mysqldump --no-data --databases databasename1 databasename2 databasename3 > structurebackupfile.sql

->備份服務器上所有數據庫?
mysqldump -uroot -p123lqh -A > allbackupfile.sql mysqldump -uroot -p123lqh -A -d> allbackupfile.sql 備份所有數據庫但只備份表結構

->將數據庫轉移到新服務器

mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename

數據庫備份和恢復