mysql之三备份
一、备份库
1.1、单库
方法一、常规备份(只备份了test库里的所有表)
//将msyql的test库备份到/opt/目录下,并起名为msyql_bak.sql # mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock test >/opt/msyql_bak.sql //查看看是否有建库语句等信息,如果中文是乱码是正常的,恢复数据可恢复正常 # egrep -v '^$|#|--|^/' /opt/msyql_bak.sql
方法二、用-B备份(备份是同时创建了库)
//将msyql的test库备份到/opt/目录下,并起名为msyql_bak.sql # mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock -B test >/opt/msyql_bak.sql
方法三、压缩备份数据库
//打包压缩备份数据库 # mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock -B test|gzip >/opt/msyql_bak.sql.gz
1.2、多库
方法一、命令打包备份库
//打包压缩备份test和oldboy库 # mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock -B test oldboy|gzip >/opt/msyql_baks.sql.gz
方法二、for循环打包备份库
如果库比较多的话可以使用个脚本备份。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
脚本说明 排除无需打包的库database|information*|mysql|performance*,将需要打包的库压缩打包,按照库名保存到opt目录下 #!/bin for dbname in ` mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "show databases;"|grep -Evi "database|information*|mysql|performance*"` do mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock --events -B $dbname|gzip >/opt/${dbname}_bak.sql.gz done;
二、恢复库
方法一、只恢复库中的表数据对(对应单库备份方法一)
//恢复test库中的数据 # mysql -uroot -p'oldboy123' -S /data/3306/mysql.sock test </opt/msyql_bak.sql //查看是否恢复成功 # mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "select * from test.test;"
方法二、恢复库同时恢复表中数据(对应单库备份方法二)
//恢复库 # mysql -uroot -p'oldboy123' -S /data/3306/mysql.sock </opt/msyql_bak_B.sql //查看是否恢复成功 # mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "show databases;"
方法三、恢复压缩的库(对应单库备份方法三)
gzip -d msyql_bak.sql.gz mysql -uroot -p'oldboy123' -S /data/3306/mysql.sock </opt/msyql_bak_B.sql
注:解压前先备份