mysql 多表备份_mysql备份与恢复多库多表备份
實例:備份:mysqldump?-u?root?-p'123456'?kaliboy>/opt/kaliboy.sql
指定字符集備份:mysqldump?-u?root?-p'123456'?--default-character-set=utf8?kaliboy>/opt/kaliboy.sql
備份參數:-e?:?后面可以執行mysql?命令用;分開
-B?:參數的作用是增加創建數據庫和連接數據庫的命令
-d?:?備份表結構
-t?:?備份數據
-A?-B?--events?備份全部數據庫
-F?:?刷新binlog日志文件
--master-data=1(=2)?:?增加binlog日志文件名及對應的位置點
-x,--lock-all-tables?鎖表
-l,--lock-tables?只讀鎖表
--compact?:去掉注釋
--single-transaction?:?適合innodb事務數據庫備份mysqldump?-u?root?-p'123456'?-B?kaliboy>/opt/kaliboy_bak.sql
還原數據庫:mysql?-uroot?-p'123456'?
查看備份內容:egrep?-v?"#|\*|--|^$"?/opt/kaliboy.sql
查看字符集:mysql?-uroot?-p'123456'?-e?"show?variables?like?'%character%'"
myqsl多庫備份:mysqldump?-uroot?-p'123456'?-B?(庫名)kaliboy?(庫名)ClasssInfo?(庫名)kaliboy_gbk|gzip?>/opt/mysql_bak.sql.gz
mysql分庫備份:mysql?-uroot?-p'123456'?-e?"show?databases;"|grep?-Evi?"database|info|perfor"|sed?-r?'s#^([a-z].*$)#mysqldump?-uroot?-p'123456'?--events?-B?\1|gzip?>/opt/\1.sql.gz#g'|bash#!/bin/bash
for?dbname?in?`mysql?-uroot?-p'123456'?-e?"show?databases;"|grep?-Evi?"database|infor|perfor"`
do
mysqldump?-uroot?-p"123456"?--events?-B?$dbname|gzip?>/opt/bak${dbname}_bak.sql.gz
done
備份單個表和多表:語法:mysqldump -u 用戶名 -p 數據庫名 表名 表名 表名>備份的文件名mysqldump?-u?root?-p?ClassInfo?score>/opt/table1.sql
分庫分表備份:#!/bin/bash
USER=root
PASSWD=123456
SOCK=/data/3306/mysql.sock
LOGIN="mysql?-u$USER?-p$PASSWD?-S?$SOCK"
DATABASES=`$LOGIN?-e?"show?databases;"|sed?"1d"|egrep?-v?"^.*sch|mysql"`
dump="mysqldump?-u$USER?-p$PASSWD?-S?$SOCK"
for?database?in?$DATABASES
do
[?!?-d?/back/$database?]?&&?mkdir?-p?/back/$database
TABLE=`$LOGIN?-e?"show?tables?from?$database;"|sed?'1d'`
for?table?in?$TABLE
do
$dump?$database?$TABLE|gzip?>/back/$database/${database}_${table}_$(date?+%F).sql.gz
done
只備份表結構和只備份數據:
參數-d 備份表結構參數-t 備份數據
實例:mysql?-u?root?-p'123456'?--compact?-d?ClassInfo?score>/opt/tabled.sql
mysql?-u?root?-p'123456'?--compact?-t?ClassInfo?score>/opt/tablet.sql
備份全部數據庫:mysqldump?-u?root?-p'123456'?-A?-B?--events|gzip?>/opt/all.sql.gz
myisam與innodb備份的區別:myisam :mysqldump -uroot -p'123456' -A -B --master=2 -x|gzip >/opt/all.sql.gzmysqldump -uroot -p'123456' -A -B --master=2 -x --triqqers --routines --events --hex-blob|gzip >/opt/all.sql.gz
innodb:mysqldump -uroot -p'123456' -A -B --master=2 --singe-transaction|gzip >/opt/all.sql.gzmysqldump -uroot -p'123456' -A -B --master=2 --singe-transaction --triqqers --routines --events --hex-blob|gzip >/opt/all.sql.gz
恢復數據庫實戰:
利用source命令恢復數據庫進入mysql數據庫控制臺,mysql -u root -p 登錄后mysql>use 數據庫名然后使用命令source 命令,后面參數為腳本文件,可以利用system ls 查看文件路徑mysql>source /opt/all.sql.gz
批量恢復腳本實例:
#!/bin/bashgzip -d /opt/*.gz
for dbname in `ls *.sql|sed 's#_bak.sql##g'`;domysql -u root -p'123456'
mysql--shou命令總結:
show status; 查看當前會話的數據庫狀態信息show global status; 查看整個數據庫運行狀態信息show full processlist; 查看正在執行的sql語句show variables; 查看數據庫參數信息
---------------------------------------------mysqlbinlog ->解析mysql的binlog日志用來記錄mysql內部增刪改查等對mysql數據庫有更新的內容記錄。
mysqlbinlog參數:-d 截取指定庫的binlog按照位置截取:mysqlbinlog mysqlbin.000046 --start-position=365 --stop-position=456 -r /opt/pos.sql按照時間截取:mysqlbinlog mysql-bin.000046 --start-datetime='2016-10-15 15:14:15' --stop-datetime='2016-10-15 15:16:17' -r time.sql
總結
以上是生活随笔為你收集整理的mysql 多表备份_mysql备份与恢复多库多表备份的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql事务机制_MySQL系列:事务
- 下一篇: php mysql 随机排序函数_php