mysql的備份和還原 mysql備份和還原

2021-10-17 13:17:39 字數 2532 閱讀 1284

一、資料備份

1、使用mysqldump命令備份

mysqldump命令將資料庫中的資料備份成乙個文字檔案。表的結構和表中的資料將儲存在生成的文字檔案中。

mysqldump命令的工作原理很簡單。它先查出需要備份的表的結構,再在文字檔案中生成乙個create語句。然後,將表中的所有記錄轉換成一條insert語句。然後通過這些語句,就能夠建立表並插入資料。

1、備份乙個資料庫

mysqldump基本語法:

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

其中:dbname引數表示資料庫的名稱;

table1和table2引數表示需要備份的表的名稱,為空則整個資料庫備份;

backupname.sql參數列設計備份檔案的名稱,檔名前面可以加上乙個絕對路徑。通常將資料庫被分成乙個字尾名為sql的檔案;

使用root使用者備份test資料庫下的person表

其生成的指令碼如下:

檔案的開頭會記錄mysql的版本、備份的主機名和資料庫名。

檔案中以「--」開頭的都是sql語言的注釋,以"/*!40101"等形式開頭的是與mysql有關的注釋。40101是mysql資料庫的版本號,如果mysql的版本比1.11高,則/*!40101和*/之間的內容就被當做sql命令來執行,如果比4.1.1低就會被當做注釋。

2、備份多個資料庫

語法:mysqldump -u username -p --databases dbname2 dbname2 > backup.sql

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

mysqldump -u root -p --databases test mysql > d:\backup.sql

3、備份所有資料庫

mysqldump命令備份所有資料庫的語法如下:

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

示例:mysqldump -u -root -p -all-databases > d:\all.sql

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

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

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

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

3、使用mysqlhotcopy工具快速備份

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

命令格式如下:

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

dbname:資料庫名稱;

backupdir:備份到哪個資料夾下;

常用選項:

--help:檢視mysqlhotcopy幫助;

--allowold:如果備份目錄下存在相同的備份檔案,將舊的備份檔案加上_old;

--keepold:如果備份目錄下存在相同的備份檔案,不刪除舊的備份檔案,而是將舊的檔案更名;

--flushlog:本次輩分之後,將對資料庫的更新記錄到日誌中;

--noindices:只備份資料檔案,不備份索引檔案;

--user=使用者名稱:用來指定使用者名稱,可以用-u代替;

--password=密碼:用來指定密碼,可以用-p代替。使用-p時,密碼與-p之間沒有空格;

--port=埠號:用來指定訪問埠,可以用-p代替;

--socket=socket檔案:用來指定socket檔案,可以用-s代替;

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

二、資料還原

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

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

示例:mysql -u root -p < c:\backup.sql

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

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

MySQL備份和還原

1 備份 使用mysqldump在cmd下執行 1 先進入到 mysql安裝目錄的bin目錄下 執行命令 mysqldump hlocalhost uroot proot cms cms 20071226.sql 備份檔案cms 20071226.sql位於bin目錄下。2 還原 1 建立要還原的資...

MySQL備份和還原

mysql備份和還原,都是利用mysqldump mysql和source命令來完成的。1.win32下mysql的備份與還原 1.1 備份 開始選單 執行 cmd 利用 cd program files mysql mysql server 5.0 bin 命令進入bin資料夾 利用 mysqld...

MySQL備份和還原

mysql備份和還原,都是利用mysqldump mysql和source命令來完成的。1.win32下mysql的備份與還原 1.1 備份 開始選單 執行 cmd 利用 cd program files mysql mysql server 5.0 bin 命令進入bin資料夾 利用 mysqld...