linux系统备份mysql数据库

  • 创建dbbackup.sh并编辑(注意:/usr/local/mysql/bin/mysqldump一定要放全路径,不然定时任务无法解析)
#!/bin/sh
/usr/local/mysql/bin/mysqldump -u用户名 -p密码 -R 数据库名 | gzip > /home/mysql/data/mysqlbackup/db_center/`date +%Y-%m-%d--%H%M%S`.sql.gz
rm -rf `find /home/mysql/data/data/mysqlbackup/ -name '*.sql.gz' -mtime 10`  #删除10天前的备份文件
  • 增加定时任务:命令:crontab -e
1 0 * * * /home/mysql/data/run/dbbackup.sh   #(每天凌晨0点1分执行)
  • 数据库备份还原
# 解压
gunzip db_name.sql.gz
# 还原
mysql -u用户名 -p密码 数据库名 < db_name.sql
  • mysql备份常用命令
#导出某个数据库--结构+数据
mysqldump -h192.168.6.27 -uroot -pxxxxxx db_name |gzip -9 > /db_bakup/db_name.gz
 
#导出某个数据库的表--结构+数据+函数+存储过程
mysqldump -h192.168.6.27 -uroot -pxxxxxx -R db_name |gzip -9 > /db_backup/db_name.gz
 
#导出多个数据库
mysqldump -h192.168.6.27 -uroot -pxxxxxx --databases db_name1 db_name2 db_name3 |gzip -9 > /db_backup/mul_db.gz 
 
#导出所有的数据库
mysqldump -h192.168.6.27 -uroot -pxxxxxx --all-databases |gzip -9 > /db_bak/all_db.gz
 
#导出某个数据库的结构
mysqldump -h192.168.6.27 -uroot -pxxxxxx --no-data db_name|gzip -9 > /db_bak/db_name.strcut.gz
 
#导出某个数据库的数据
mysqldump -h192.168.6.27 -uroot -pxxxxxx --no-create-info db_name|gzip -9 > /db_bak/db_naem.data.gz
 
#导出某个数据库的某张表
mysqldump -h192.168.6.27 -uroot -pxxxxxx db_name tbl_name |gzip -9 > /db_bak/db_name.tal_name.gz
 
# 导出某个数据库的某张表的结构
mysqldump -h192.168.6.27 -uroot -pxxxxxx --no-data db_name tal_name | gzip -9 > /db_bak/db_name.tal_name.struct.gz
 
#导出某个数据库的某张表的数据
mysqldump -h192.168.6.27 -uroot -pxxxxxx --no-create-info db_name tbl_name | gzip -9 > /db_bak/db_name.tbl_name.data.gz

  

原文地址:https://www.cnblogs.com/cui0614/p/12780844.html