1. 備份和還原:
mysqldump備份:
備份:
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 > /備份路徑片排、備份文件名(備份整個數(shù)據(jù)庫)
mysqldump -u用戶名 -p 數(shù)據(jù)庫名 表名 > /備份路徑壤圃、備份文件名(備份數(shù)據(jù)庫表)
備份多個庫: --databases 庫1屠缭,庫2?
備份所有庫:--all-databases
備份多個表:庫名 表1 表2?
還原:mysql 數(shù)據(jù)庫 < 備份文件
注意:還原時掘猿,若導入的是某表笆呆,請指定導入到哪一庫中。
2. mysqlhotcopy 備份:
備份:mysqlhotcopy --flushlog -u='用戶' -p='密碼' --regexp=正則 備份目錄
還原:cp -a 備份目錄 數(shù)據(jù)目錄(/var/lib/mysql)
3.mysqldump和mysqlhotcopy示例:
3.1 mysql 備份和還原
#把數(shù)據(jù)庫aa備份到/root目錄下:
mysqldump -uroot -p aa> ~/aa.sql
#模擬數(shù)據(jù)庫aa丟失(刪除數(shù)據(jù)庫aa)
mysql> drop database aa;
#通過aa.sql文件還原(指定導入到那個庫中)
mysql -uroot -p test < aa.sql
#備份多個數(shù)據(jù)庫(--databases)
mysqldump -uroot -p --databases aa test > abc.sql?
#還原(先模擬丟失)
mysql -uroot -p < abc.sql
#備份有規(guī)則的數(shù)據(jù)庫
mysql> create database a1; #連續(xù)創(chuàng)建三個a開頭的數(shù)據(jù)庫
mysqlhotcopy --flushlog -u='root' -p='456' --regexp=^a
還原(先模擬丟失)
mysql> drop database a1;? ?#順序刪除a開頭的數(shù)據(jù)庫
cp -a /mnt/* /var/lib/mysql/? #復制產(chǎn)生的文件到數(shù)據(jù)庫目錄下
#登錄數(shù)據(jù)庫查看即可
4.mysql-binlog日志文件
二進制日志(log-bin日志):所有對數(shù)據(jù)庫狀態(tài)更改的操作(create侨拦、drop殊橙、update等)
修改my.cnf配置文件開啟binlog日志記錄功能
#vim /etc/my.cnf
log-bin=mysql-bin? #啟動二進制日志
按時間還原:
--start-datatime
--stop-datetime
格式:mysqlbinlog --start-datetime 'YY-MM-DD HH:MM:SS' --stop-datetime 'YY-MM-DD'
'HH:MM:SS' 二進制日志|mysql -uroot -p
按文件大小還原:
--start-position
--stop-position
eg:
# mysqlbinlog --start datetime "2019-09-09 16:16:16" --stop-datetime "2019-09-09 16:26:16" -mysql-bin.000001 | mysql -uroot -p123456
注意:所選擇的時間一定要完整包括所有動作(可以在原來的基礎上稍微增加點時間)
[root@test mysql]# mysqlbinlog musql bin.000001