MySQL入門篇 mysqldump備份和恢復

2023-01-24 01:06:05 字數 3182 閱讀 8163

mysql資料庫自帶的備份命令。是邏輯備份,匯出的是sql語句。也就是把資料從mysql庫中以邏輯的sql語句的形式直接輸出或將輸出匯入備份的檔案的過程。

1)mysqldump備份資料需要的許可權

對於table來說mysqldump最少要有select許可權

對於view來說mysqldump最少要有show view許可權

對於trrigger來說mysqldump要有trriger許可權

如果要產生一份一致的備份mysqldump要有lock tables許可權

# 登陸資料庫後執行授權命令

grant select,reload,replication client,show view,lock tables,trigger on *.* to '

dbbackup

'@'192.168.1.%

' identified by '

dbbackup';

# 檢視授權後的資訊並重新整理

show grants

for'

dbbackup

'@'192.168.1.%';

flush privileges;

# 

備份操作

mysqldump -udbbackup -pdbbackup -b mytest > /mnt/mytest_bak_b.sql

說明:加-b引數後,匯出的資料檔案中已存在建立庫和使用庫的語句;在恢復過程中不需要手動建立庫,可以直接還原恢復。

# 恢復操作

# 刪除mytest庫

mysql -udbbackup -pdbbackup -e "

drop database mytest;

"# 恢復資料

mysql -udbbackup -pdbbackup <

/mnt/mytest_bak_b.sql

# 備份操作

mysqldump -udbbackup -pdbbackup -b mytest | gzip > /mnt/mytest_bak_b.sql.gz

說明:mysqldump匯出的檔案是文字檔案,壓縮效率很高。

# 備份操作

mysqldump -udbbackup -pdbbackup -b mytest wiki | gzip > /mnt/mytest_and_wiki_bak_b.sql.gz

說明:通過-b引數指定相關資料庫,每個資料庫名之前用空格分隔。當使用-b引數後,將所有資料庫全部列全,則等同於-a引數。

執行一個備份語句就備份一個庫,分庫備份就是執行多條相同的備份語句,只是備份的庫名和備份檔名不同。可以通過shell指令碼自動生成並執行相應的操作,也可以把所有單個備份語句寫在同一個shell指令碼中,通過cron定時任務來備份。

分庫備份的意義當所有庫都備份成一個備份檔案時,恢復其中一個資料比較麻煩。所以分庫備份,利於恢復。

for dbname in `mysql -uroot -p123456 -e "

show databases;

"|grep -evi "

database|infor|perfor"`

domysqldump -uroot -p123456 --events -b $dbname | gzip > /mnt/$_bak_b.sql.gz

done

# 匯出整個資料庫(包含資料庫中的資料)

mysqldump -u username -p dbname >dbname.sql

# 匯出資料庫結構(不包含資料)

mysqldump -u username -p -d dbname >dbname.sql

# 匯出資料庫中的某張資料表(包含資料)

mysqldump -u username -p dbname tablename >tablename.sql

# 匯出資料庫中的某張資料表的表結構(不含資料)

mysqldump -u username -p -d dbname tablename > tablename.sql

資料備份策略:

完全備份:備份所有資料

增量備份:備份上次備份後,所有新產生的資料

差異備份:備份完全備份後,所有新產生的資料

完全備份(mysqldump)

# mkdir /mydata

# mysqldump  -uroot  -p123456  -a  >  /mydata/alldb.sql     (備份所有)

# mysqldump  -uroot  -p123456  db2 >  /mydata/db2.sql   (備份db2庫)

# mysqldump  -uroot  -p123456  db2   t2  >  /mydata/db2_t2.sql   (備份db2庫的t2表)

# mysqldump  -uroot  -p123456  -b  db3  db2 >  /mydata/twodb.sql  (備份 db3,db2庫)

完全恢復資料(刪除對應的備份資料,然後使用備份檔案恢復資料)

# mysqldump  -uroot  -p123456  db4  < /mydata/db4_t2.sql       (恢復t2表)

完全備份:備份所有資料

增量備份:備份上次備份後,所有新產生的資料

差異備份:備份完全備份後,所有新產生的資料

完全備份(mysqldump)

# mkdir /mydata

# mysqldump  -uroot  -p123456  -a  >  /mydata/alldb.sql     (備份所有)

# mysqldump  -uroot  -p123456  db2 >  /mydata/db2.sql   (備份db2庫)

# mysqldump  -uroot  -p123456  db2   t2  >  /mydata/db2_t2.sql   (備份db2庫的t2表)

# mysqldump  -uroot  -p123456  -b  db3  db2 >  /mydata/twodb.sql  (備份 db3,db2庫)

完全恢復資料(刪除對應的備份資料,然後使用備份檔案恢復資料)

# mysqldump  -uroot  -p123456  db4  < /mydata/db4_t2.sql       (恢復t2表)

MySQL入門篇(一)

建立一個資料庫 create database 資料庫名 檢視資料庫 show databases 檢視建立好的資料庫資訊 show create database 資料庫名 改變資料庫編碼 alter 資料庫名 character set 編碼 collate 編碼方式 bin 刪除資料庫 dro...

MySQL入門學習 二 入門篇

入門篇 上篇講了如何安裝並測試mysql,環境建好後就可以繼續我們的學習了。本篇主要熟悉一寫常用命令。1 啟動mysql伺服器 實際上上篇已講到如何啟動mysql。兩種方法 一是用winmysqladmin,如果機器啟動時已自動執行,則可直接進入下一步操作。二是在dos方式下執行 d mysqlbi...

MySQL入門學習 二 入門篇

入門篇 上篇講了如何安裝並測試mysql,環境建好後就可以繼續我們的學習了。本篇主要熟悉一寫常用命令。1 啟動mysql伺服器 實際上上篇已講到如何啟動mysql。兩種方法 一是用winmysqladmin,如果機器啟動時已自動執行,則可直接進入下一步操作。二是在dos方式下執行 d mysqlbi...