萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql數據備份與恢復的幾種方式

mysql數據備份與恢復的幾種方式

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

 


還原: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文件就是易導入的數據庫文件

copyright © 萬盛學電腦網 all rights reserved