MySQL数据库备份还原

本文转自: https://www.jianshu.com/p/b77dfd6d998b

手动备份

  1. 备份一个数据库
mysqldump  -h hostname -u username -p mypasswd databasename  >  /path to backup/bakname.sql

备份并压缩

mysqldump -h hostname -u username -p mypasswd databasename | gzip > /path to backup/bakname.sql.gz
  1. 备份多个数据库
mysqldump -h hostname -u username -p mypasswd databases databasename1 databasename2 databasename3 > /path to backup/bakname.sql
  1. 备份数据库一些表
mysqldump -h hostname -u username -p mypasswd databasename table1 table2 table3 > /path to backup/bakname.sql
  1. 仅备份数据库结构
mysqldump -no-data -databases databasename1 databasename2 databasename3 > /path to backup/bakname.sql
  1. 备份所有数据库
mysqldump -all-databases > /path to backup/bakname.sql

还原数据库

  1. 还原无压缩数据库
mysql -h hostname -u username -p mypasswd databasename < /path to backup/bakname.sql
  1. 还原压缩数据库
gunzip < /path to backup/bakname.sql.gz | mysql -h hostname -u username -p mypasswd databasename

迁移到新服务器

mysqldump -h hostname -u username -p mypasswd databasename | mysql -h new_hostname -C databasename

脚本定时备份

  1. 创建备份脚本

mysql_backup.sh

#!/bin/sh
# This is a mysql datbase backup shell script.

# set mysql info
hostname="localhost"
user="root"
password="my password"

# set database info
database="bak database name"
bakpath="path to backup"
date=$(date +%Y%m%d_%H%M%S)

# backup
mkdir -p $bakpath
mysqldump -h $hostname -u $user -p $password $database | gzip \ 
> $bakpath/$database_$date_sql.gz
  1. 创建定时任务

crontab: crontab 是linux系统下的一个任务调度器

crontab定时服务 启动|结束|状态
service crond start | status | stop

# 查看config文件,可以看到定时规则
$ cat /etc/cron

# 添加备份定时任务
$ crontab -e
添加定时计划,例如:每天2点执行
0 2 * * * /path to sh/mysql_backup.sh
保存退出

# 查看当前用户定时任务
$ crontab -l

#查看定时计划日志
$ tail -f /var/log/cron
  1. 定时跟踪
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值