# 开启读锁 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教程,主打原创,定期更新,全部免费,欢迎收藏学习和转载分享。