mysql數據庫備份或恢復我們常用的就是常用有直接拷貝數據庫備份,mysqldump數據庫備份與mysqlhotcopy數據庫備份常用方法,下面我們一起來看看.
mysqldump 命令模式,備份IP為192.168.1.100某個庫,代碼如下:
- D:/APM/APMServ5.2.6/MySQL5.1/bin>
- mysqldump -h 192.168.1.100 -u root -p ucenter >d:/sql/uc_20130306.sql
- Enter password: ****
備份某個庫下的某個表,代碼如下:
mysqldump -u root -p密碼 dbname tablename>d:/test.sql
備份全庫,代碼如下:
mysqldump -u root -p密碼 –all-databases >d:/test.sql
備份dbname 數據庫的結構:
mysqldump -u root -p -d –add-drop-table dbname >d:/sql/a.sql
說明:-d 沒有數據 –add-drop-table 在每個create語句之前增加一個drop table
導入數據庫,代碼如下:
- D:/APM/APMServ5.2.6/MySQL5.1/bin>
- mysql –u root –p [dbname] < backup.sql
參數說明:
Dbname參數表示數據庫名稱,該參數可選,可以指定數據庫名,也可以不指定,指定數據庫名時,表示還原該數據庫下的表,不指定數據庫名時,表示還原特定的一個數據庫.
mysqlhotcopy
它直接拷貝文件,所以它比mysqldump快,可自動完成數據鎖定工作,備份時不用關閉服務器,能刷新日志,使備份文件和日志文件的檢查點能保持同步.
備份:mysqlhotcopy 支持一次性拷貝多個數據庫,同時還支持正則表達,以下是幾個例子,代碼如下:
- /usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=root -p=root
- testdb /tmp (把數據庫目錄 testdb 拷貝到 /tmp 下)
- /usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=root -p=root
- testdb_1 testdb_2 testdb_n /tmp
- /usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=root -p=root
- testdb./regex/ /tmp //Vevb.com
還原:mysqlhotcopy 備份出來的是整個數據庫目錄,使用時可以直接拷貝到 mysqld 指定的 datadir (在這里是 /usr/local/mysql/data/)目錄下即可,同時要注意權限的問題,如下例:
- cp -rf testdb /usr/local/mysql/data/
- chown -R nobody:nobody /usr/local/mysql/data/ (將 testdb 目錄的屬主改成 mysqld 運行用戶)
直接復制,windows系統下,直接復制很簡單我們先停了mysql數據庫,然后再復制出來就可以了.
linux系統中:
①查找數據庫文件存放位置,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文件就是易導入的數據庫文件.
新聞熱點
疑難解答