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...