數據庫備份和恢復
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
->還原壓縮的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
--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
數據庫備份和恢復