Mysql資料庫簡易備份4種方法

2021-08-19 19:28:58 字數 3386 閱讀 4560



第一種、直接拷貝資料庫。

要求:1、資料庫型別必須為myisam型別

2、在拷貝的過程中不要讓使用者執行諸如update,delete,insert這樣的更新語句。下面給出具體例項:

如:我的資料庫是安裝在/usr/local/mysql目錄下,資料目錄是/usr/local/mysql/data,要備份資料庫test,備份檔案存放在/backup/目錄下,則按以下幾步即可完成。

a、關閉資料庫:/usr/local/mysql/bin/mysqladmin -uroot -p*** shutdown              ***為你的密碼.

b、拷貝並壓縮資料庫test資料夾

tar -zcvf /backup/test.tar.gz /usr/local/mysql/data/test

c、重新啟動資料庫伺服器

/usr/local/mysql/bin/mysqld_safe --user=mysql&

通過上面三個步驟即可成功把test資料庫備份到/backup/目錄下.

第二種:使用mysqlhotcopy工具進行資料備份。

第一種方法是最簡單的方法,不過要停止資料庫伺服器的執行,這在很多情況下會影響使用者的使用,因此並不常用。使用mysqlhotcopy可以在不用停止mysql伺服器的情況下進行資料備份。這種方法也非常簡單,只要下面一條語句即可實現把test資料庫備份到/backup/目錄下

/usr/local/mysql/bin/mysqlhotcopy -uroot -p*** test /backup/

mysqlhotcopy在執行前將會鎖定資料庫,執行完畢後將自定釋放鎖定。

然後在進行壓縮:tar -zcvf /backup/test.tar.gz /backup/test

第三種:使用mysqldump工具進行資料備份。

/usr/local/mysql/bin/mysqldump test -uroot -p*** --opt test>/backup/test.sql

--opt 此選項將開啟所有會提高檔案匯出速度和創造乙個可以更快匯入的檔案的選項

然後在進行壓縮:tar -zcvf /backup/test.sql.tgz /backup/test.sql

mysqldump工具有大量的選項,部分選項如下:

選項/option 作用/action performed

--add-drop-table

這個選項將會在每乙個表的前面加上drop table if

exists語句,這樣可以保證導回mysql資料庫的時候不會出錯,因為每次導回的時候,都會首先檢查表是否存在,存在就刪除

--add-locks

這個選項會在insert語句中捆上乙個lock table和unlock

table語句。這就防止在這些記錄被再次匯入資料庫時其他使用者對錶進行的操作

-c or - complete_insert

這個選項使得mysqldump命令給每乙個產生insert語句加上列(field)的名字。當把資料匯出導另外乙個資料庫時這個選項很有用。

--delayed-insert 在insert命令中加入delay選項

-f or -flush-logs 使用這個選項,在執行匯出之前將會重新整理mysql伺服器的log.

-f or -force 使用這個選項,即使有錯誤發生,仍然繼續匯出

--full 這個選項把附加資訊也加到create table的語句中

-l or -lock-tables 使用這個選項,匯出表的時候伺服器將會給表加鎖。

-t or -no-create- info

這個選項使的mysqldump命令不建立create table語句,這個選項在您只需要資料而不需要ddl(資料庫定義語句)時很方便。

-d or -no-data 這個選項使的mysqldump命令不建立insert語句。

在您只需要ddl語句時,可以使用這個選項。

--opt 此選項將開啟所有會提高檔案匯出速度和創造乙個可以更快匯入的檔案的選項。 //from www.w3sky.com

-q or -quick 這個選項使得mysql不會把整個匯出的內容讀入記憶體再執行匯出,而是在讀到的時候就寫入導檔案中。

-t path or -tab = path 這個選項將會建立兩個檔案,乙個檔案包含ddl語句或者表建立語句,另乙個檔案包含資料。ddl檔案被命名為table_name.sql,資料檔案被命名為table_name.txt.路徑名是存放這兩個檔案的目錄。目錄必須已經存在,並且命令的使用者有對檔案的特權。

--fields-enclosed-by= char 指定文字檔案中資料的記錄時以什麼括起的, 很多情況下 資料以雙引號括起。 預設的情況下資料是沒有被字元括起的。

--fields-terminated-by=char 指定各個資料的值之間的分隔符,在句號分隔的檔案中, 分隔符是句號。您可以用此選項指定資料之間的分隔符。 預設的分隔符是跳格符(tab)

--lines-terminated-by=str 此選項指定文字檔案中行與行之間資料的分隔字串 或者字元。 只匯出資料時,預設的情況下mysqldump以newline為行分隔符。 您可以選擇用乙個字串來替代乙個單個的字元: 乙個新行或者乙個回車。

-w "where clause" or -where = "where clause "

如前面所講的,您可以使用這一選項來過篩選將要放到 匯出檔案的資料。

假定您需要為乙個表單中要用到的帳號建立乙個檔案,經理要看今年(2023年)所有的訂單(orders),它們並不對ddl感興趣,並且需要檔案有逗號分隔,因為這樣就很容易匯入到excel中。 為了完成這個人物,您可以使用下面的句子:

bin/mysqldump –p –where "order_date >='2000-01-01'"

–tab = /home/mark –no-create-info –fields-terminated-by=, orders

這將會得到您想要的結果。

第四種,使用select into outfile備份資料.

進入mysql命令客戶端,輸入以下命令

select * into outfile '/home/mark/orders.txt'

fields

terminated by = ','

from orders

where order_date >= '2000-01-01'

在你按了return(回車)之後,檔案就建立了。這個句子就像乙個規則的select語句,只是把想螢幕的輸出重定向到了檔案中。這意味這您可以使用join來實現多表的高階查詢。這個特點也可以被用作乙個報表產生器。這裡也可以使用fields_enclosed-by= char,fields-terminated-by=char,lines-terminated-by=str 對匯出的資料進行規劃.

MySQL資料庫備份 4

資料庫損壞的發生有很多原因,程度也不同。如果你走運,你可能僅損壞一兩個表 如掉電 如果你倒霉,你可能必須替換整個資料目錄 如磁碟損壞 在某些情況下也需要恢復,比如使用者錯誤地刪除了資料庫或表。不管這些倒霉事件的原因,你將需要實施某種恢復。如果表損壞但沒丟失,嘗試用myisamchk或isamchk修...

簡易指令碼方便備份MySQL資料庫

簡易指令碼 方便備份mysql 資料庫 echo off echo.echo mysql資料庫備份 echo echo.echo 今天是 date echo 時間是 time echo.echo set ymd date 4 date 5,2 date 8,2 md e ymd c program ...

Mysql資料庫備份與還原(簡易)

1 使用mysqldump命令備份 mysqldump命令將資料庫中的資料備份成乙個文字檔案。表的結構和表中的資料將儲存在生成的文字檔案中。mysqldump命令的工作原理很簡單。它先查出需要備份的表的結構,再在文字檔案中生成乙個create語句。然後,將表中的所有記錄轉換成一條insert語句。然...