MYSQL备份的内容通常包括:
- 数据库的数据
- 二进制日志、InnoDB的事务日志
- 用户账号、权限设置、程序代码(存储过程、函数、触发器、事件调度器)
- 配置文件
mysqldump 备份工具
mysqldump是目前最常用的MYSQL备份工具,它是一种逻辑备份工具,可以在不停止MYSQL服务的同时进行数据备份,不会影响互联网业务的正常运行。虽然直接拷贝数据库中的所有文件也可以实现备份(冷备份),方法简单粗暴,但是冷备份需要先停止服务,所以对于一些需要24小时不间断运行的服务来说,不建议使用冷备份。mysqldump工具可以结合二进制日志进行日常的备份还原工作。
命令格式
mysqldump [OPTIONS] database [tables] #只备份数据库中的表,不备份数据库本身,还原时需要自行创建数据库
mysqldump [OPTIONS] -B DB1 [DB2 DB3...] #备份多个数据库(包括数据库本身)
mysqldump [OPTIONS] -A [OPTIONS] #备份所有数据库(包含数据库本身)
选项
-A, --all-databases #备份所有数据库,含create database
-B, --databases DB1 DB2 ... #指定备份的数据库,含create database
-E, --events #备份相关的所有event scheduler
-R, --routines #备份所有存储过程和自定义函数
--triggers:#备份表相关触发器,默认启用,用--skip-triggers,不备份触发器
--default-character-set=utf8mb4 #指定字符集
--master-data[=#]: #此选项使用之前需要启用二进制日志,有1或者2两种配置,含义如下
1:所备份的数据之前加一条记录为CHANGE MASTER TO语句,非注释。默认值,适合于主从复制多机使用。
2:记录为被注释的#CHANGE MASTER TO语句,适合于单机使用,适用于备份还原。
-F,--flush-logs #备份前滚动日志。配合-A 或 -B 选项时,会导致刷新多次数据库。建议在同一时刻执行转储和日志刷新,可通过和--single-transaction或-x,--master-data 一起使用实现,此时只刷新一次二进制日志。
--compact #去掉注释,适合调试,节约备份占用的空间,生产环境中不使用此选项
-d, --no-data #只备份表结构,不备份数据,即只备份create table。
-t, --no-create-info #只备份数据,不备份表结构,即不备份create table
-n,--no-create-db #不备份create database,可被-A或-B覆盖
--flush-privileges #备份mysql或相关时需要使用
-f, --force #忽略SQL错误,强行执行
--hex-blob #使用十六进制符号转储二进制列,当有包括BINARY、VARBINARY、BLOB、BIT的数据类型的列时使用,避免乱码
-q, --quick #不缓存查询,直接输出,加快备份速度
InnoDB建议的备份方式
存放备份的文件夹需要提前创建,否则备份失败。
mkdir /backup
mysqldump -uroot -p -A -F --single-transaction --master-data=2 --default-character-set=utf8mb4| gzip > /backup/all_`date +%F`.sql.gz
拿我的wordpress数据库做个备份
导出数据
mysqldump -uroot -p -A -F --single-transaction --master-data=2 --default-character-set=utf8mb4| gzip > /backup/all_`date +%F`.sql.gz
复制到另一台远程服务器(需要输入密码或者提前做免密验证)
rsync -a --delete /backup/all_2022-06-30.sql.gz 154.17.22.52:/backup/
在备份服务器解压缩
gzip -d /backup/all_2022-06-30.sql.gz
安装MYSQL服务(ubuntu系统我使用的APT,CENTOS请用YUM)
apt -y install mysql-server
登录数据库
mysql -uroot -p
导入数据
source /backup/all_2022-06-30.sql;
![](https://frogvps.com/wp-content/uploads/2022/06/20220630a1-1024x533.jpg)