《Mysql學(xué)習(xí)命令行模式下備份、還原 MySQL 數(shù)據(jù)庫(kù)的語句小結(jié)》要點(diǎn):
本文介紹了Mysql學(xué)習(xí)命令行模式下備份、還原 MySQL 數(shù)據(jù)庫(kù)的語句小結(jié),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
為了安全起見,需要經(jīng)常對(duì)數(shù)據(jù)庫(kù)作備份,或者還原.對(duì)于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的導(dǎo)出、導(dǎo)入功能了,但如果你的數(shù)據(jù)庫(kù)體積比較大,作為 Web 應(yīng)用的 phpMyAdmin 可能會(huì)遭遇“超時(shí)”而操作失敗.所以,學(xué)會(huì)在命令行模式下備份、還原數(shù)據(jù)庫(kù),還是很有必要的.
1、備份數(shù)據(jù)庫(kù)
在 Linux 命令行模式下備份 MySQL 數(shù)據(jù)庫(kù),用的是 mysqldump 命令:
代碼如下:
mysqldump -u mysqluser -p test_db
對(duì)以上命令稍作解釋:
?-u 意味著你要指定一個(gè) MySQL 用戶名來連接數(shù)據(jù)庫(kù)服務(wù),如上面的 mysqluser 即為 MySQL用戶名.
?-p 則意味著你需要有一個(gè)有效的,與以上用戶名對(duì)應(yīng)的密碼.
?最后一個(gè)參數(shù)則是需要備份的那個(gè)數(shù)據(jù)庫(kù)的名稱:test_db
如果直接執(zhí)行以上命令,緊接著就會(huì)提示需要輸入 MySQL 密碼,數(shù)據(jù)密碼后,它會(huì)直接將備份出來的 SQL 腳本顯示在屏幕上,這當(dāng)然不是我們想要的結(jié)果.我們需要把數(shù)據(jù)庫(kù)備份成一個(gè)文件,可用以下命令:
代碼如下:
mysqldump -u mysqluser -p test_db > test_db.sql
這樣,就會(huì)在當(dāng)前目錄下備份出一個(gè)名為test_db.sql的文件.
當(dāng)然,如果數(shù)據(jù)庫(kù)體積比較大,通常會(huì)對(duì)備份出來的文件進(jìn)行壓縮,備份和壓縮可以在同一行命令內(nèi)完成:
代碼如下:
mysqldump -u mysqluser -p test_db | gzip > test_db.sql.gz
壓縮的時(shí)候,最好再給文件名加上擴(kuò)展名.gz,以便下次還原數(shù)據(jù)庫(kù)的時(shí)候心中有數(shù).
2、還原數(shù)據(jù)庫(kù)
還原數(shù)據(jù)庫(kù)的命令也很簡(jiǎn)單,如果你備份出來的文件是未壓縮的版本,則還原數(shù)據(jù)庫(kù)的命令如下:
代碼如下:
cat test_db.sql | mysql -u mysqluser -p test_db
用cat命令,把 SQL 腳本內(nèi)容輸出給 MySQL 程序以便還原.可以看到,MySQL 后面的幾個(gè)參數(shù),跟備份時(shí)候的一樣.
如果是已壓縮版本的備份文件,則需用以下命令才能還原:
代碼如下:
gunzip < test_db.sql.gz | mysql -u mysqluser -p test_db
類似地,用gunzip命令,解壓縮,然后把腳本內(nèi)容輸出給 MySQL 程序以便還原.
2012-10-08 update:
如不考慮將 .sql 文件壓縮打包的話,也可以用下面兩條語句分別導(dǎo)出、導(dǎo)入.
代碼如下:
mysqldump -u root -p test_db > test_db.sql
mysql -u root -p test_db < test_db.sql
備份MySQL數(shù)據(jù)庫(kù)的命令
代碼如下:
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
備份MySQL數(shù)據(jù)庫(kù)為帶刪除表的格式
備份MySQL數(shù)據(jù)庫(kù)為帶刪除表的格式,能夠讓該備份覆蓋已有數(shù)據(jù)庫(kù)而不需要手動(dòng)刪除原有數(shù)據(jù)庫(kù).
代碼如下:
mysqldump -Cadd-drop-table -uusername -ppassword databasename > backupfile.sql
直接將MySQL數(shù)據(jù)庫(kù)壓縮備份
代碼如下:
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
備份MySQL數(shù)據(jù)庫(kù)某個(gè)(些)表
代碼如下:
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
同時(shí)備份多個(gè)MySQL數(shù)據(jù)庫(kù)
代碼如下:
mysqldump -hhostname -uusername -ppassword Cdatabases databasename1 databasename2 databasename3 > multibackupfile.sql
僅僅備份數(shù)據(jù)庫(kù)結(jié)構(gòu)
代碼如下:
mysqldump Cno-data Cdatabases databasename1 databasename2 databasename3 > structurebackupfile.sql
備份服務(wù)器上所有數(shù)據(jù)庫(kù)
代碼如下:
mysqldump Call-databases > allbackupfile.sql
還原MySQL數(shù)據(jù)庫(kù)的命令
代碼如下:
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
還原壓縮的MySQL數(shù)據(jù)庫(kù)
代碼如下:
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
將數(shù)據(jù)庫(kù)轉(zhuǎn)移到新服務(wù)器
代碼如下:
mysqldump -uusername -ppassword databasename | mysql Chost=*.*.*.* -C databasename
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/4016.html