MySQL 備份與還原

2021-08-11 15:04:03 字數 1583 閱讀 4984

一、備份

1、備份乙個資料庫

基本語法:

mysqldump -u username -p dbname table1 table2 ...-> backupname.sql

常用選項:

其中:2、備份多個資料庫

基本語法:

mysqldump -u username -p --databases dbname2 dbname2 > backup.sql

加上了--databases選項,然後後面跟多個資料庫

3、備份所有資料庫

基本語法:

mysqldump -u username -p -all-databases > backupname.sql

4、直接複製整個資料庫目錄

mysql有一種非常簡單的備份方法,就是將mysql中的資料庫檔案直接複製出來。這是最簡單,速度最快的方法。

不過在此之前,要先將伺服器停止,這樣才可以保證在複製期間資料庫的資料不會發生變化。如果在複製資料庫的過程中還有資料寫入,就會造成資料不一致。這種情況在開發環境可以,但是在生產環境中很難允許備份伺服器。

注意:這種方法不適用於innodb儲存引擎的表,而對於myisam儲存引擎的表很方便。同時,還原時mysql的版本最好相同。

5、使用mysqlhotcopy工具

使用熱備份工具。mysqlhotcopy支援不停止mysql伺服器備份。而且,mysqlhotcopy的備份方式比mysqldump快。mysqlhotcopy是乙個perl指令碼,主要在linux系統下使用。其使用lock tables、flush tables和cp來進行快速備份。

原理:先將需要備份的資料庫加上乙個讀鎖,然後用flush tables將記憶體中的資料寫回到硬碟上的資料庫,最後,把需要備份的資料庫檔案複製到目標目錄。

命令格式如下:

[root@localhost ~]# mysqlhotcopy [option] dbname1 dbname2 backupdir/

常用選項:

目前,該工具也僅僅能夠備份myisam型別的表。

二、資料還原

1、還原使用mysqldump命令備份的資料庫:

基本語法:

mysql -u root -p [dbname] < backup.sq

2、還原直接複製目錄的備份

通過這種方式還原時,必須保證兩個mysql資料庫的版本號是相同的。myisam型別的表有效,對於innodb型別的表不可用,innodb表的表空間不能直接複製。

mysql備份與還原

假設mysql 安裝在c 盤,mysql資料庫的使用者名稱是root,密碼是123456,資料庫名是database name,在d 盤根目錄下面存放備份資料庫,備份資料庫名字為backup20070713.sql。備份資料庫 mysqldump uroot p123456 database nam...

mysql備份與還原

備份檔案 檔案開頭記錄了mysql的版本 備份的主機名和資料庫名。檔案中,以 開頭的的都是sql語言的注釋 不會被執行 但是,以 40101 等形式開頭 的是與mysql有關的注釋。40101 是mysql資料庫的版本號,這裡就表示mysql 4.1.1 如果還原資料時,mysql的版本比4.1.1...

mysql備份與還原

工作中用到了mysql,在這裡做個備忘記錄 1 備份 匯出整個資料庫database mysqldump u root p database dump.sql 只匯出表結構 mysqldump u root p d database dump.sql 匯出單個資料表table mysqldump a...