大致上MySql數據庫備份可以採用兩種方式:一種就是直接導出sql語句或者易於導入的其他格式的sql存儲文件,使用sql語句或者一些可視化客戶端導出,這種方法非常簡單,無需贅述;另一種方法就是拷貝出數據庫文件,再將數據庫文件轉換成sql文件,這篇文章就介紹一下這種方法。
①查找數據庫文件存放位置,MySql文件的後綴有三種形式*.MYD、*.MYI、*.frm;
- find / -name *.MYD
②進入數據庫存儲文件目錄;
- cd /opt/lanmp/mysql-5.1.63/win/data/
③使用copy命令把所有數據拷出去;
- copy mysql /home
④此時只需將這些數據庫文件轉換成sql文件,這也是這篇文章裏我要講的重點,如果需要的時候再將sql文件用命令導入即可;
⑤新建一個數據庫命名爲mysqlbak,將剛纔拷出來的文件夾拷入新數據庫的data文件夾;
- find / -name mysqlbak
- cd /home/mysql
- copy * /www/wdlinux/mysql-5.1.63/var/mysqlbak/
⑥此時就已經可以看到新數據庫mysqlbak裏的數據了,跟原數據庫mysql裏的數據是一樣的;
⑦使用命令導出數據庫文件即可。
- mysqldump -uroot -p mysqlbak > /home/mysql.sql
⑧這home文件夾下的文件mysql.sql文件就是易導入的數據庫文件。需要注意的是所有的操作都必須在操作系統下用命令完成,而不提倡使用工具。因爲在實際操作過程中,我們經常會遇到數據庫裏的數據庫文件版本和數據庫版本不一致,或者新舊數據庫版本不一致的問題,再或者數據服務器版本與客戶端工具不兼容等意想不到的問題,如果是這種情況,使用工具導出一般會報“1577:Cannot proceed because system tables used by Event Scheduler were found damaged at server start”的錯誤。說到這裏,其實本文也提供了一種打開mysql數據庫文件的方法,如果現在只有一堆*.MYD、*.MYI、*.frm文件,執行步驟⑤到步驟⑧即可。