2026/2/10 5:10:47
网站建设
项目流程
苏州工业园区劳动局网站做不了合同,wordpress下载安装,可以自己做课程的网站,站长工具黄在日常运维中#xff0c;MySQL 数据备份是保障数据安全的核心操作#xff0c;而 mysqldump 作为 MySQL 官方自带的备份工具#xff0c;因其轻量、灵活、跨平台的特性#xff0c;成为中小规模数据库备份的首选。
一、mysqldump 基础认知
1. 什么是 mysqldump#xff1f;
my…在日常运维中MySQL 数据备份是保障数据安全的核心操作而mysqldump作为 MySQL 官方自带的备份工具因其轻量、灵活、跨平台的特性成为中小规模数据库备份的首选。一、mysqldump 基础认知1. 什么是 mysqldumpmysqldump是 MySQL 提供的命令行工具本质是一个 SQL 导出工具它能将数据库/表结构和数据以 SQL 语句的形式导出到文本文件中备份文件可直接用于数据恢复兼容所有 MySQL 版本5.0和 MariaDB。2. 基础语法格式mysqldump[连接参数][备份参数][数据库名][表名]备份文件路径/文件名.sql核心连接参数说明-u指定 MySQL 用户名如-uroot-p指定密码建议只写-p不直接跟密码回车后输入更安全-h指定数据库服务器地址本地可省略远程需填 IP如-h192.168.1.100-P指定端口默认 3306非默认需指定如-P3307二、实操mysqldump 备份单库最常用1. 基础单库备份适用于只备份某一个数据库如业务库test_db命令如下# 本地数据库单库备份推荐写法密码交互输入mysqldump -uroot -p test_db/backup/mysql/test_db_$(date%Y%m%d).sql# 远程数据库单库备份指定IP和端口mysqldump -uroot -p -h192.168.1.100 -P3306 test_db/backup/mysql/test_db_20260113.sql关键说明$(date %Y%m%d)自动拼接日期到备份文件名避免覆盖如test_db_20260113.sql/backup/mysql/备份文件存放路径需提前创建mkdir -p /backup/mysql执行后会提示Enter password:输入 MySQL 密码即可开始备份。2. 优化版单库备份带压缩忽略锁表生产环境中建议开启压缩减少文件体积同时添加参数避免锁表影响业务# 压缩备份gzip 忽略锁表 保留结构和数据mysqldump -uroot -p --single-transaction --skip-lock-tables test_db|gzip/backup/mysql/test_db_$(date%Y%m%d).sql.gz参数解析--single-transaction适用于 InnoDB 引擎保证备份数据的一致性无锁--skip-lock-tables跳过表锁避免备份时阻塞读写| gzip将备份内容通过管道压缩生成.sql.gz文件体积仅为原文件的 1/5 左右。三、实操mysqldump 备份多库如果需要同时备份多个数据库如test_db1、test_db2无需多次执行命令只需用--databases参数指定多个库名1. 基础多库备份# 备份 test_db1 和 test_db2 两个库mysqldump -uroot -p --databases test_db1 test_db2/backup/mysql/multi_db_$(date%Y%m%d).sql2. 多库备份排除指定库如果需要备份大部分库仅排除个别库如排除mysql系统库可结合grep筛选# 先获取所有库名排除 mysql 后备份mysql -uroot -p -eSHOW DATABASES;|grep-EvDatabase|mysql|information_schema|performance_schema|xargsmysqldump -uroot -p --databases/backup/mysql/multi_db_exclude_$(date%Y%m%d).sql参数解析-e SHOW DATABASES;执行 SQL 查看所有库名grep -Ev排除系统库Database 是表头mysql/information_schema/performance_schema 是系统库xargs将筛选后的库名传递给 mysqldump。四、实操mysqldump 备份全库全库备份即备份 MySQL 服务器上所有数据库含系统库适合整机迁移、灾备场景核心参数是--all-databases可简写为-A。1. 基础全库备份# 全库备份最简洁写法mysqldump -uroot -p --all-databases/backup/mysql/full_db_$(date%Y%m%d).sql# 简写形式-A 等价于 --all-databasesmysqldump -uroot -p -A/backup/mysql/full_db_$(date%Y%m%d).sql2. 生产级全库备份压缩一致性跳过错误# 全库备份压缩 一致性 跳过错误 记录备份时间mysqldump -uroot -p -A --single-transaction --skip-lock-tables --force|gzip/backup/mysql/full_db_$(date%Y%m%d_%H%M%S).sql.gz参数解析--force备份过程中遇到错误不中断继续备份其他库%H%M%S在文件名中添加时分秒适合一天多次备份的场景。五、mysqldump 备份注意事项引擎适配--single-transaction仅对 InnoDB 引擎有效MyISAM 引擎需用--lock-all-tables保证一致性会锁全库建议低峰期执行权限要求执行备份的 MySQL 用户需有SELECT、LOCK TABLES、SHOW VIEW等权限建议用 root 用户备份验证备份后务必验证文件有效性可通过cat 备份文件.sql | grep CREATE TABLE查看是否有表结构或直接导入测试库定时备份生产环境建议结合crontab实现定时备份例如每天凌晨 2 点备份# 编辑定时任务crontab-e# 添加以下内容每天2点备份test_db输出日志避免邮件告警02* * * mysqldump -uroot -p你的密码--single-transaction test_db|gzip/backup/mysql/test_db_$(date%Y%m%d).sql.gz/dev/null21注意定时任务中-p后可直接写密码无空格但需确保服务器权限安全。六、备份恢复补充备份的最终目的是恢复以下是对应恢复命令# 恢复单库/多库mysql -uroot -p 目标库名备份文件.sql# 恢复压缩的备份文件gzip-d 备份文件.sql.gzmysql -uroot -p 目标库名解压后的文件.sql# 恢复全库mysql -uroot -p全库备份文件.sql