命令行模式下備份、還原 MySQL 數據庫的語句小結

爲了安全起見,須要常常對數據庫做備份,或者還原,學會在命令行模式下備份、還原數據庫,仍是頗有必要php

爲了安全起見,須要常常對數據庫做備份,或者還原。對於 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的導出、導入功能了,但若是你的數據庫體積比較大,做爲 Web 應用的 phpMyAdmin 可能會遭遇「超時」而操做失敗。因此,學會在命令行模式下備份、還原數據庫,仍是頗有必要的。 

一、備份數據庫 
在 Linux 命令行模式下備份 MySQL 數據庫,用的是 mysqldump 命令: 

mysql


mysqldump -u mysqluser -p test_db 
sql



對以上命令稍做解釋: 

•-u 意味着你要指定一個 MySQL 用戶名來鏈接數據庫服務,如上面的 mysqluser 即爲 MySQL用戶名。 
•-p 則意味着你須要有一個有效的,與以上用戶名對應的密碼。 
•最後一個參數則是須要備份的那個數據庫的名稱:test_db 

若是直接執行以上命令,緊接着就會提示須要輸入 MySQL 密碼,數據密碼後,它會直接將備份出來的 SQL 腳本顯示在屏幕上,這固然不是咱們想要的結果。咱們須要把數據庫備份成一個文件,可用如下命令: 數據庫


mysqldump -u mysqluser -p test_db > test_db.sql 
安全


這樣,就會在當前目錄下備份出一個名爲test_db.sql的文件。 

固然,若是數據庫體積比較大,一般會對備份出來的文件進行壓縮,備份和壓縮能夠在同一行命令內完成: 服務器


mysqldump -u mysqluser -p test_db | gzip > test_db.sql.gz 
spa


壓縮的時候,最好再給文件名加上擴展名.gz,以便下次還原數據庫的時候心中有數。 

二、還原數據庫 
還原數據庫的命令也很簡單,若是你備份出來的文件是未壓縮的版本,則還原數據庫的命令以下: 命令行


cat test_db.sql | mysql -u mysqluser -p test_db 
ip


用cat命令,把 SQL 腳本內容輸出給 MySQL 程序以便還原。能夠看到,MySQL 後面的幾個參數,跟備份時候的同樣。 

若是是已壓縮版本的備份文件,則需用如下命令才能還原: ci


gunzip < test_db.sql.gz | mysql -u mysqluser -p test_db 


相似地,用gunzip命令,解壓縮,而後把腳本內容輸出給 MySQL 程序以便還原。 

2012-10-08 update: 

如不考慮將 .sql 文件壓縮打包的話,也能夠用下面兩條語句分別導出、導入。 


mysqldump -u root -p test_db > test_db.sql 
mysql -u root -p test_db < test_db.sql 



備份MySQL數據庫的命令 


mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 


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


mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql 



直接將MySQL數據庫壓縮備份 

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz 


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

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql 


同時備份多個MySQL數據庫 

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql 


僅僅備份數據庫結構 

mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql 


備份服務器上全部數據庫 

mysqldump –all-databases > allbackupfile.sql 


還原MySQL數據庫的命令 

mysql -hhostname -uusername -ppassword databasename < backupfile.sql 


還原壓縮的MySQL數據庫 

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename 


將數據庫轉移到新服務器 

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

相關文章
相關標籤/搜索