MySQL8 数据备份与恢复

MySQL8 数据备份与恢复,MySQL8教程,介绍 MySQL8 数据备份和数据恢复。

【全栈教程】:https://try8.cn/article
教程目录:
教程内容:
最近更新:2023-04-17

一、MySQL8 数据备份与恢复类型

MySQL8 数据备份非常重要,您可以在系统崩溃、硬件故障或误删除数据的情况下重新启动服务并进行数据恢复,MySQL8 有很多数据备份策略,如物理备份与逻辑备份,完整备份与增量备份等,一般可以选择最适合自己的方法。


1.1、物理备份与逻辑备份

  • 物理备份:包括存储数据库内容的目录和文件的原始副本,适用于快速恢复的大型、重要的数据库;
  • 逻辑备份:包括数据库逻辑结构(CREATE、INSERT 等)和内容的语句,适用于少量数据。


1.2、在线备份与离线备份

在线备份在 MySQL 服务器运行时进行,以便可以从服务器获取数据库信息,服务器停止时进行离线备份。这种区别也可以描述为热备份与冷备份,热备份是服务器保持运行但在您从外部访问数据库文件时锁定以防止修改数据的备份。


1.3、本地备份与远程备份

本地备份在运行 MySQL 服务器的同一主机上执行,而远程备份则在不同的主机上执行,对于某些类型的备份,即使输出是在服务器本地写入的,也可以从远程主机启动备份。


1.4、完整备份与增量备份

  • 完整备份:包括在给定时间点由 MySQL 服务器管理的所有数据;
  • 增量备份:包含在给定时间范围内,从一个时间点到另一个时间点对数据所做的更改。


二、MySQL8 数据备份与恢复方法

MySQL8 数据备份与数据恢复方法很多,您可以通过使用 mysqldump 备份、复制表文件备份、二进制日志备份、副本备份等,如果您需要得到一致的备份,请停止服务或进行锁表操作。


2.1、MySQL8 数据备份

# 开启读锁
flush tables with read lock;
# 开始全量备份,假设二进制日志原始文件为 bin.000000,会生成新的增量文件:bin.000001 / bin.000002...
mysqldump --single-transaction --flush-logs --master-data=2 --all-databases > backup_db.sql


2.2、MySQL8 数据恢复

# 首先,使用最后一个完整备份进行全量数据恢复
mysql < backup_db.sql
# 然后,开始增量恢复,假设有2个增量文件
mysqlbinlog bin.000001 bin.000002 | mysql


三、MySQL8 数据备份与恢复示例

3.1、备份与恢复 SQL

数据备份 SQL:

# 备份全部数据库
mysqldump --all-databases > dump.sql
# 备份单个数据库
mysqldump --databases db1 > dump.sql
# 备份多个数据库
mysqldump --databases db1 db2 db3 > dump.sql
# 备份数据库指定的表
$> mysqldump try8_db try8_tb1 try8_tb2 > dump.sql


数据恢复 SQL:

# 数据恢复方式一
mysql < dump.sql
# 数据恢复方式二
source dump.sql
# 指定数据库名称数据恢复方式三
mysql try8_db < dump.sql


3.2、备份与恢复文本

因为往服务器写入文件需要设置相关权限,您可以直接设置参数后重启服务:

[mysqld]
secure-file-priv=""


数据备份文本:

# 默认方式,将数据库备份到 tmp 目录
mysqldump --tab=/tmp try8_db
# 用于分隔列值的字符串,默认值:制表符
mysqldump --tab=/tmp --fields-terminated-by=str try8_db 
# 包含列值的字符,默认值:无字符
mysqldump --tab=/tmp --fields-enclosed-by=char try8_db 
# 包含非数字列值的字符,默认值:无字符
mysqldump --tab=/tmp --fields-optionally-enclosed-by=char try8_db 
# 转义特殊字符的字符,默认值:不转义
mysqldump --tab=/tmp --fields-escaped-by=char try8_db 
# 行终止字符串,默认值:换行符
mysqldump --tab=/tmp --lines-terminated-by=str try8_db 
# 多种格式同时使用示例
mysqldump --tab=/tmp --fields-terminated-by=str,--fields-enclosed-by=char try8_db 


数据恢复文本:

# 数据恢复方式一
mysql db1 < dump.sql
# 数据恢复方式二
mysqlimport try8_db dump.txt
# 数据恢复方式三
use try8_db;
load data infile 'dump.txt' into table try8_tb;
# 数据恢复方式四
mysqlimport --fields-terminated-by=, --fields-enclosed-by='"' try8_db dump.txt


四、MySQL8 数据备份与恢复 总结

MySQL8教程 - MySQL8 数据备份与恢复,介绍 MySQL 和 MySQL8 数据库,从 MySQL8 数据备份与恢复类型开始,逐步到 MySQL8 数据备份与恢复方法和示例等,通篇实用易懂,让 MySQL8 入门更加快速和简单。


《MySQL8教程》主打原创、全部免费,欢迎学习和转载,如需交流请加微信号:try8_cn。