Linux下mysql備份 恢復

洋蔥土豆隨心匠發表於2016-02-06

轉載自http://blog.chinaunix.net/uid-20577907-id-161611.html

比如我們要備份mysql中已經存在的名為linux的資料庫,要用到命令mysqldump 
命令格式如下: 
[root@linuxsir01 root]# mysqldump -u root -p linux > /root/linux.sql 
Enter password:在這裡輸入資料庫的密碼 

通過上面的命令,我們要明白兩件事,首先備份資料庫是要以資料庫管理員的身份備份;其次:備份目的地是/root,備份的檔名是linux.sql。其實備份的位置和檔名,根據自己的情況來定。檔名可以自己來取,路徑也可以自己來安排; 
比如我想把linux的資料庫備份到/home/beinan,資料庫的檔名為linuxsir031130.sql,所以應該輸入如下的命令。 

[root@linuxsir01 root]#mysqldump -u root -p linux > /home/beinan/linuxsir031130.sql 
Enter password:在這裡輸入資料庫管理員root的資料庫密碼 

如果資料量大會佔用很大空間,這時可以利用gzip壓縮資料,命令如下: 

#mysqldump -u root -p tm | gzip > tm_050519.sql.gz 


這樣我們到/home/beinan目錄下就能發現mysql中名為linux的資料庫的備份檔案linuxsir031130.sql 
綜上所述,我們學習時要學會變通。 

恢復: 
首先我們還是要操作上面幾個過程,比如新增資料庫管理員(如果您沒有新增過mysql資料庫管理員的話),建立資料庫等。 
比如我們要把在/home/beinan這個目錄中的linuxsir031130.sql這個備份,匯入名為linux的資料庫中,應該如下操作; 
[root@linuxsir01 root]#mysql -u root -p linux < /home/beinan/linuxsir031130.sql 
Enter password:在這裡輸入密碼 

如果機器好,資料庫比較小,幾分鐘就好了。 




如何匯出資料庫表的資料?(不同於備份哦) 

#mysql 

(#mysql>use linux;)#可有可無 

#mysql>select * from linux.table-name into outfile "/home/table-name.txt"; 

#/home/table-name.txt 可能會報錯,如果這樣去掉/home直接"table-name.txt" 

預設儲存在/var/lib/mysql/table-name.txt 


對mysql資料庫常用命令的一點補充; 

幾個常用的mysql相關的管理命令 
mysql 命令:基本文字的,顯示和使用的mysql資料庫。前面已經簡單的提過用法;比如登入等。 
mysqladmin 命令,用來建立和維護mysql資料庫的命令,前面已經簡單的提過; 
isamchk 是用來修復、檢查和優化.ism字尾的資料庫檔案; 
mysqldump 是用於備份資料庫,前面已經簡單的說明過; 
myisamchk 用來修復.myi字尾的資料庫檔案; 

比如我們要檢查名為linux的資料庫.myi資料庫表是否存在問題,應該用下面的命令; 

要把mysqld伺服器停下來 
[root@linuxsir01 root]# /opt/mysql/share/mysql.server stop 

然後執行 
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk /opt/mysql/var/linux/*.MYI 

上面的命令的意思就是檢查所有的.myi檔案,資料庫的目錄在/opt/mysql/var/linux/目錄中 

如果有問題,應該用-r引數來修復 
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk -r /opt/mysql/var/linux/*.MYI 

7]mysqlshow 命令:顯示使用者選擇的資料庫和表 
[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p [資料庫名] 

比如我要檢視名為linux的資料庫;應該是: 

[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p linux 

相關文章