MySQL8 数据备份非常重要,您可以在系统崩溃、硬件故障或误删除数据的情况下重新启动服务并进行数据恢复,MySQL8 有很多数据备份策略,如物理备份与逻辑备份,完整备份与增量备份等,一般可以选择最适合自己的方法。
在线备份在 MySQL 服务器运行时进行,以便可以从服务器获取数据库信息,服务器停止时进行离线备份。这种区别也可以描述为热备份与冷备份,热备份是服务器保持运行但在您从外部访问数据库文件时锁定以防止修改数据的备份。
本地备份在运行 MySQL 服务器的同一主机上执行,而远程备份则在不同的主机上执行,对于某些类型的备份,即使输出是在服务器本地写入的,也可以从远程主机启动备份。
MySQL8 数据备份与数据恢复方法很多,您可以通过使用 mysqldump 备份、复制表文件备份、二进制日志备份、副本备份等,如果您需要得到一致的备份,请停止服务或进行锁表操作。
# 开启读锁 flush tables with read lock; # 开始全量备份,假设二进制日志原始文件为 bin.000000,会生成新的增量文件:bin.000001 / bin.000002... mysqldump --single-transaction --flush-logs --master-data=2 --all-databases > backup_db.sql
# 首先,使用最后一个完整备份进行全量数据恢复 mysql < backup_db.sql # 然后,开始增量恢复,假设有2个增量文件 mysqlbinlog bin.000001 bin.000002 | mysql
数据备份 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
因为往服务器写入文件需要设置相关权限,您可以直接设置参数后重启服务:
[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 数据备份与恢复,介绍 MySQL 和 MySQL8 数据库,从 MySQL8 数据备份与恢复类型开始,逐步到 MySQL8 数据备份与恢复方法和示例等,通篇实用易懂,让 MySQL8 入门更加快速和简单。
《MySQL8教程》主打原创、全部免费,欢迎学习和转载,如需交流请加微信号:try8_cn。