ubuntu mysql 數據庫備份以及恢復[命令行]


之所以加了個ubuntu,其實也沒什么,就是恢復數據庫的時候給幽默了一下,所以特地加上。

 
寫在前面:一直很想好好的學linux命令行、shell編程,幻想自己能夠通過學習進而成為命令行高手,游刃於黑白屏幕之前,只可惜幾次嘗試都覺得舉步維艱,無甚收獲。漫無目的,從頭到尾把語法掌握起來,然后一個命令一個命令去理解記憶,那樣不僅枯燥難以堅持,費時費力還特沒有成就感。
直到最近幾個具體而又緊迫的任務:自動備份數據庫,批量更新發布,還有數據庫還原。之前我還勉強手動去操作,但是實在是太讓人糾結了,做些機器就能做的事情更讓自己懊惱。狠下決心,借助網絡,跳過了很多入門的訓練,直接通過現成的例子,修修改改竟然也達到目標,雖然做法上心里覺得肯定不是最優,但是卻頗有成就感,而且對Linux命令行,shell的理解也跟進一步,對以后的學習也就更有信心了。
 
回到主題:
自己一直懶於去學習這個那么容易的命令行備份,靠着phpmyadmin的界面操作,一拖再拖。連定期備份都是自己手動的去做的,現在回想起來真是愚不可及啊!真想罵自己一句:死蠢!
改變的原因在於:數據庫慢慢變龐大了,依靠phpmyadmin逐漸出現問題:很慢,而且有的時候export竟然會失敗,找不到export.php這個頁面,這個讓我非常糾結,原因是什么我沒去細究,但是顯然是大一些的數據庫(這里的大一些也沒多大,幾十M而已)就開始出問題了。沒辦法備份了,自己肯定會心慌了。
 
備份數據庫
這個好說,使用mysqldump輕而易舉的事情。
mysqldump -u[account] -p[pass] database_name > database_name.sql
這里只備份了一個數據庫,如果要多個,或者全數據庫,加參數,或者寫shell執行就好了。不多說。
當然,定期備份嘛,crontab ,寫在日志里,每天執行一次,只保留最近1周的存檔,並且傳到另外一個備份服務器,這個是后話,以后我再了。(這些雖然很多人看來簡單,但是對於新手,有時候真覺得非常惡心啊)
 
恢復數據庫
新人一枚,網上看到好多方法,不過大多一樣。不過搞笑的是,ubuntu12.04(別的版本我不知道)Mysql的數據庫文件不是存在 /usr/local/mysql里面的 而是在:/var/lib/mysql 。
這就是我特地加個ubuntu的原因了,就在這上面,我也栽了跟斗,我了個去。
 
1.移動到mysql數據庫文件存放位置
cd /var/lib/mysql
2.創建數據庫
mysqladmin -uroot -ppass create database_name
3.導入數據庫
mysql -uroot -ppass database_name < database_name.sql
4.為數據庫創建賬號與密碼
mysql -uroot -ppass
mysql> grant all privileges on database_name.* to 'user'@'localhost' identified by "pass";
 
至此,就完成了,如果是導入已經存在數據庫,那么備份的sql文件里,就需要加個參數 實現drop table if exist. 至於具體加什么上網搜下mysqldump的參數就好了。
 
至此,基本的數據庫備份與恢復就完成了。勉強能用,湊合記錄以免自己忘記。也請高手賜教,通過mysqldump直接備份更大一些的數據庫的還會出問題的,到時候還得再進一步研究學習,望高手點撥啊!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM