簡(jiǎn)單的MySQL備份與還原方法分享
為了安全起見(jià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ù),還是很有必要的。
Linux系統(tǒng)下
備份數(shù)據(jù)庫(kù)
在 Linux 命令行模式下備份 MySQL 數(shù)據(jù)庫(kù),用的是 mysqldump 命令:
mysqldump -u mysqluser -p test_db
對(duì)以上命令稍作解釋?zhuān)?/p>
- -u 意味著你要指定一個(gè) MySQL 用戶(hù)名來(lái)連接數(shù)據(jù)庫(kù)服務(wù),如上面的 mysqluser 即為 MySQL用戶(hù)名。
- -p 則意味著你需要有一個(gè)有效的,與以上用戶(hù)名對(duì)應(yīng)的密碼。
- 最后一個(gè)參數(shù)則是需要備份的那個(gè)數(shù)據(jù)庫(kù)的名稱(chēng):test_db
如果直接執(zhí)行以上命令,緊接著就會(huì)提示需要輸入 MySQL 密碼,數(shù)據(jù)密碼后,它會(huì)直接將備份出來(lái)的 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ì)備份出來(lái)的文件進(jìn)行壓縮,備份和壓縮可以在同一行命令內(nèi)完成:
cat test_db.sql | mysql -u mysqluser -p test_db
壓縮的時(shí)候,最好再給文件名加上擴(kuò)展名.gz,以便下次還原數(shù)據(jù)庫(kù)的時(shí)候心中有數(shù)。
還原數(shù)據(jù)庫(kù)
還原數(shù)據(jù)庫(kù)的命令也很簡(jiǎn)單,如果你備份出來(lái)的文件是未壓縮的版本,則還原數(shù)據(jù)庫(kù)的命令如下:
cat test_db.sql | mysql -u mysqluser -p test_db
用cat命令,把 SQL 腳本內(nèi)容輸出給 MySQL 程序以便還原??梢钥吹剑琈ySQL 后面的幾個(gè)參數(shù),跟備份時(shí)候的一樣。
如果是已壓縮版本的備份文件,則需用以下命令才能還原:
gunzip < test_db.sql.gz | mysql -u mysqluser -p test_db
類(lèi)似地,用gunzip命令,解壓縮,然后把腳本內(nèi)容輸出給 MySQL 程序以便還原。
如不考慮將 .sql 文件壓縮打包的話,也可以用下面兩條語(yǔ)句分別導(dǎo)出、導(dǎo)入
mysqldump -u root -p test_db > test_db.sql mysql -u root -p test_db < test_db.sql
Windows系統(tǒng)下
備份
開(kāi)始菜單 | 運(yùn)行 | cmd |利用“cd /Program Files/MySQL/MySQL Server 5.0/bin”命令進(jìn)入bin文件夾 | 利用“mysqldump -u 用戶(hù)名 -p databasename >exportfilename”導(dǎo)出數(shù)據(jù)庫(kù)到文件,如mysqldump -u root -p voice>voice.sql,然后輸入密碼即可開(kāi)始導(dǎo)出。
還原
進(jìn)入MySQL Command Line Client,輸入密碼,進(jìn)入到“mysql>”,輸入命令"show databases;",回車(chē),看看有些什么數(shù)據(jù)庫(kù);建立你要還原的數(shù)據(jù)庫(kù),輸入"create database voice;",回車(chē);切換到剛建立的數(shù)據(jù)庫(kù),輸入"use voice;",回車(chē);導(dǎo)入數(shù)據(jù),輸入"source voice.sql;",回車(chē),開(kāi)始導(dǎo)入,再次出現(xiàn)"mysql>"并且沒(méi)有提示錯(cuò)誤即還原成功。
相關(guān)文章
phpMyAdmin下將Excel中的數(shù)據(jù)導(dǎo)入MySql的圖文方法
使用phpMyAdmin將Excel中的數(shù)據(jù)導(dǎo)入MySql,需要將execl導(dǎo)入到mysql數(shù)據(jù)庫(kù)的朋友可以參考下。2010-08-08
如何獲取SqlServer2005表結(jié)構(gòu)(字段,主鍵,外鍵,遞增,描述)
本篇文章是對(duì)如何獲取SqlServer2005表結(jié)構(gòu)(字段,主鍵,外鍵,遞增,描述)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
關(guān)于數(shù)據(jù)庫(kù)中保留小數(shù)位的問(wèn)題
本篇文章是對(duì)關(guān)于在數(shù)據(jù)庫(kù)中保留小數(shù)位的問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07
淺談mysql中多表不關(guān)聯(lián)查詢(xún)的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇淺談mysql中多表不關(guān)聯(lián)查詢(xún)的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
如何解決mysql無(wú)法關(guān)閉的問(wèn)題
在本篇文章里小編給大家整理的是一篇關(guān)于解決mysql無(wú)法關(guān)閉的問(wèn)題的相關(guān)內(nèi)容,需要的朋友們可以參考下。2020-08-08
Mysql 本地計(jì)算機(jī)無(wú)法啟動(dòng) mysql 服務(wù) 錯(cuò)誤 1067:進(jìn)程意外終止。
初學(xué)php接觸mysql,遇到一些問(wèn)題,卸載重裝后,無(wú)法啟動(dòng)mysql服務(wù),網(wǎng)絡(luò)上有很多種說(shuō)法,我這里將我解決這個(gè)問(wèn)題的辦法提出2009-12-12
自動(dòng)恢復(fù)MySQL數(shù)據(jù)庫(kù)的日志文件思路分享及解決方案
本文主要講訴如何自動(dòng)恢復(fù)mysql數(shù)據(jù)庫(kù)的日志文件,喜歡的在服務(wù)器或者數(shù)據(jù)庫(kù)上直接操作的兄弟們你值得收藏下!2014-08-08

