mysql备份、恢复之mysqldump
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等mysqldump 语法 :默认配置读
千家信息网最后更新 2026年11月03日mysql备份、恢复之mysqldump
mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等
mysqldump 语法 :
默认配置读取路径: /etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
常用参数 : -u, --user=name 指定用户 -h, --host=name 指定主机 -p, --password[=name] 指定密码 -A, --all-databases 指定所有库,-A与--all-databases不同时使用 -B, --databases 只指定--databases表示备份单个数据库;多数据库之间使用空格隔开; 如果不指定--databases表示备份整个数据库;只指定dbname表示备份单张表;多表之间使用空格隔开 --master-data[=#] 0 表示关闭,默认值为 0 1 表示开头打印CHANGE MASTER命令信息,在复制场景中有用 2 表示添加注释信息,记录当前所处二进制日志及所处位置 --single-transaction 如果全部为 InnoDB引擎表,则不需要使用 --lock-all-tables; 基于此选项能实现热备InnoDB表;会启动单个大事务,对全局服务影响可能是持久的 --lock-all-tables 执行备份前请求锁定表,一般只锁定当前要备份的数据库及表 --add-drop-database 在恢复之前先删除已经存在的对应数据库 --add-drop-table 在恢复之前先删除已经存在的对应表 -C, --compress 将数据先压缩后通过网络传输 -E, --events 备份数据同时,备份事件调度器代码 -R, --routines 备份数据同时,备份存储过程和存储函数 -d, --no-data 表示只备份表结构不备份数据,复制表结构、空库至其它服务器时有用.其它任何时候不可用 --opt 同时启动各种高级选项
备份方式 :
全量+增量+二进制日志
前提需要在配置中添加参数 :
default-storage-engine = InnoDB 设置默认存储引擎为InnoDB
innodb_file_per_table=1 设置每表单个表空间
log-bin=mysql-bin 启用二进制功能
备份过程 : 全量备份 : 使用InnoDB引擎,备份使用--single-transaction选项不需要锁定表即实现热备;使用非InnoDB引擎,备份需要使用--lock-all-tables选项进行请求锁定所有表后开始备份 mysqldump -uroot -pmypass --single-transaction --all-databases --master-data=2 > /backup/mysql_fullbak.sql 增量备份 : mysql>SHOW MASTER STATUS; 查看当前处于哪个日志文件及位置 less /backup/mysql_fullbak.sql 查看从哪个位置开始 mysqlbinlog --start-position=4579 --stop-position=4868 mysql-bin.000015 > /backup/increment.sql 指定开始及结束位置导出成增量备份 二进制日志备份: mysql>INSERT INTO test (Name,Age) VALUES ('tom',18); 增量备份后,插入一条数据 mysql>DROP DATABASE hello; 此时删除数据库 mysql>SHOW MASTER STATUS; 查看当前处于哪个日志文件及位置 mysqlbinlog --start-position=4868 mysql-bin.000015 查看数据库崩溃前二进制日志开始位置,结束位置必须是数据库删除之前位置 mysqlbinlog --start-position=4868 --stop-position=5062 mysql-bin.000015 > /tmp/hello.sql 将二进制日志启动时位置至崩溃前位置数据导出恢复过程 : 前提 : 清空数据目录下所有文件,重新初始化数据库 mysql>SET GLOBAL sql_log_bin=0; 恢复时需要临时关闭二进制日志,如不关闭,恢复数据将记录进二进制日志增加日志管理难度 mysql>FLUSH LOGS; 手动对二进制日志进行一次滚动 mysql < /backup/mysql_fullbak.sql 恢复全量备份 mysql < /backup/increment.sql 恢复增量备份 mysql < /tmp/hello.sql 恢复崩溃前导出二进制数据 mysql>SET GLOBAL sql_log_bin=1; 恢复完成开启二进制日志
恢复后需要使用 mysqlcheck -uroot -pmypass -c -all-databases 检查所有表是否存在问题,所有恢复完成后请记得对数据库做一次全量备份
至此,使用mysqldump备份恢复完成,如有错误请大家指教!
备份
数据
数据库
日志
二进制
位置
增量
同时
引擎
存储
文件
过程
之间
信息
前提
单个
参数
命令
有用
空格
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海睿民互联网科技有限公司
广州紫鲸互联网科技有限公司
互联网科技保险
金融科技创新监管互联网金融
卓越科技(互联网 )
上海喔噻互联网科技
奇士达互联网科技
互联网女皇 腾讯科技
互联网科技股有哪些
互联网和黑科技的看法
湖北码尼互联网科技有限公司电话
世界互联网科技公司市值排名
苏州五指互联网络科技有限
互联网科技大奖都有哪些公司
中国互联网公司排名锤子科技
上海京穆互联网科技有限公司
广州燕处互联网科技有限公司
互联网科技平台产品运营
华人运通互联网科技公司
青岛互联网科技园
互联网科技垄断
互联网科技与金融科技
菲比寻常互联网科技
互联网科技有哪些公司
昭通互联网科技选哪家
厦门千工互联网科技有限公司
互联网科技产业特征
移动互联网年度科技创新
科技信息时代互联网发展
互联网领先科技成果宣传视频