MySQL備份和恢復資料表的方法 1

2021-09-20 16:55:59 字數 1669 閱讀 1044

備份是最簡單的保護資料的方法,本節將介紹多種備份方法。為了得到乙個一致的備份,在相關的表上做乙個lock tables,你只需乙個讀鎖定,當你在資料庫目錄中做檔案的乙個拷貝時,這允許其他執行緒繼續查詢該錶;當你恢復資料時,需要乙個寫鎖定,以避免衝突。

ad:

備份是最簡單的保護資料的方法,本節將介紹多種備份方法。為了得到乙個一致的備份,在相關的表上做乙個lock tables,你只需乙個讀鎖定,當你在資料庫目錄中做檔案的乙個拷貝時,這允許其他執行緒繼續查詢該錶;當你恢復資料時,需要乙個寫鎖定,以避免衝突。

使用sql語句備份和恢復

你可以使用select into outfile語句備份資料,並用load data infile語句恢復資料。這種方法只能匯出資料的內容,不包括表的結構,如果表的結構檔案損壞,你必須要先恢復原來的表的結構。

語法:select * into 'file_name' from tbl_name

load data [low_priority] [local] infile 'file_name.txt' [replace | ignore]

into table tbl_name

select ... into outfile 'file_name'格式的select語句將選擇的行寫入乙個檔案。檔案在伺服器主機上被建立,並且不能是已經存在的(不管別的,這可阻止資料庫表和 檔案例如「/etc/passwd」被破壞)。select ... into outfile是load data infile逆操作。

為了安全原因,當讀取位於伺服器上的文字檔案時,檔案必須處於資料庫目錄或可被所有人讀取。另外,為了對伺服器上檔案使用load data infile,在伺服器主機上你必須有file的許可權。使用這種select into outfile語句,在伺服器主機上你必須有file許可權。

當在伺服器主機上尋找檔案時,伺服器使用下列規則:

◆如果給出乙個絕對路徑名,伺服器使用該路徑名。 

◆如果給出乙個有乙個或多個前置部件的相對路徑名,伺服器相對伺服器的資料目錄搜尋檔案。 

◆如果給出乙個沒有前置部件的乙個檔名,伺服器在當前資料庫的資料庫目錄尋找檔案。

假定表tbl_name具有乙個primary key或unique索引,備份乙個資料表的過程如下:

1、鎖定資料表,避免在備份過程中,表被更新

mysql>lock tables read tbl_name;

2、匯出資料

mysql>select * into outfile 『tbl_name.bak』 from tbl_name;

3、解鎖表

mysql>unlock tables;

相應的恢復備份的資料的過程如下:

1、為表增加乙個寫鎖定:

mysql>lock tables tbl_name write;

2、恢復資料

mysql>load data infile 『tbl_name.bak』

->replace into table tbl_name;

如果,你指定乙個low_priority關鍵字,就不必如上要對錶鎖定,因為資料的匯入將被推遲到沒有客戶讀表為止:

mysql>load data  low_priority  infile 『tbl_name』 

->replace into table tbl_name;

3、解鎖表

MYSQL 備份恢復資料

mysql命令列匯出資料庫 1,進入mysql目錄下的bin資料夾 cd mysql中到bin資料夾的目錄 如我輸入的命令列 cd c program files mysql mysql server 4.1 bin 或者直接將windows的環境變數path中新增該目錄 2,匯出資料庫 mysql...

mysql的日誌和備份 恢復資料

查詢日誌 2.慢查詢日誌 3.二進位制日誌 vim etc my.cnf 開啟 log bin mysql bin binlog日誌,即binary log,是二進位制日誌檔案,有兩個作用,乙個是增量備份,另乙個是主從複製,即主節點維護乙個binlog日誌檔案,從節點從binlog中同步資料,也可以...

利用 MySQL bin log 恢復資料表

今天公司一同事使用典型的 update 不帶 where 語句 誤操作把資料庫中一張極重要資料表 player 給 做掉了 還算幸運的是該資料庫每3個月會完整備份一次,最近一次的備份點為6月30日,再加上 bin log 保留了30天的資料,可以根據這兩份資料還原資料表的內容。方法看上去非常簡單清晰...