萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL中數據庫的備份和恢復命令總結

MySQL中數據庫的備份和恢復命令總結

在mysql中對數據庫數據表的備份與還原我們只要使用到mysqldump命令即可實現,不管是在windows還是在linux中都可使用mysqldump來備份與還原數據庫。

 先來講述一下利用mysqldump備份


SQL 來備份 MyISAM 表:

 代碼如下 復制代碼

/usr/local/mysql/bin/mysqldump -uyejr -pyejr --default-character-set=utf8 --opt --extended-insert=false


--triggers -R --hex-blob -x db_name > db_name.sql

使用以下 SQL 來備份 Innodb 表:

 代碼如下 復制代碼

/usr/local/mysql/bin/mysqldump -uyejr -pyejr --default-character-set=utf8 --opt --extended-insert=false


--triggers -R --hex-blob --single-transaction db_name > db_name.sql


接著再講mysqldump還原備份的數據


mysqldump 備份出來的文件是一個可以直接倒入的 SQL 腳本,有兩種方法可以將數據導入。

•直接用 mysql 客戶端
例如:

 代碼如下 復制代碼

/usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql

•用 SOURCE 語法
其實這不是標准的 SQL 語法,而是 mysql 客戶端提供的功能,例如:

 代碼如下 復制代碼

SOURCE /tmp/db_name.sql;

這裡需要指定文件的絕對路徑,並且必須是 mysqld 運行用戶(例如 nobody)有權限讀取的文件。


可能大家還會知道一個命令mysqlhotcopy下面我也簡單講述一下

mysqlhotcopy 支持一次性拷貝多個數據庫,同時還支持正則表達。以下是幾個例子:

 代碼如下 復制代碼 root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr db_name /tmp

(把數據庫目錄 db_name

拷貝到 /tmp 下)

 代碼如下 復制代碼 root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr db_name_1 ... db_name_n /tmp
root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr db_name./regex/ /tmp

更詳細的使用方法請查看手冊,或者調用下面的命令來查看 mysqlhotcopy 的幫助:

 代碼如下 復制代碼 perldoc /usr/local/mysql/bin/mysqlhotcopy

注意,想要使用 mysqlhotcopy,必須要有 SELECT、RELOAD(要執行 FLUSH TABLES) 權限,並且還必須要能夠有讀取

datadir/db_name 目錄的權限。

mysqlhotcopy還原

mysqlhotcopy 備份出來的是整個數據庫目錄,使用時可以直接拷貝到 mysqld 指定的 datadir (在這裡是

/usr/local/mysql/data/)目錄下即可,同時要注意權限的問題,如下例:

 代碼如下 復制代碼 root#cp -rf db_name /usr/local/mysql/data/
root#chown -R nobody:nobody /usr/local/mysql/data/

 (將 db_name 目錄的屬主改成 mysqld )

好了其它的像sql語句的這裡就不講述了,大家可百度搜索。


利用linux中的shell命令

 代碼如下 復制代碼 shell> mysqldump --quick db_name | gzip > db_name.contents.gz

(該例子中創建的文件是壓縮格式)。

 恢復/轉移到另一台的命令如下:

 代碼如下 復制代碼 shell> gunzip < db_name.contents.gz | mysql db_name

以上命令,適用於*nix 操作系統的機器

copyright © 萬盛學電腦網 all rights reserved