)
mysqldump是MySQL自带逻辑备份工具无需额外安装支持导出SQL文本备份兼容MySQL5.7、8.0适用于日常数据备份、迁移、恢复。下面按实际运维场景分步讲解命令可直接复制使用。一、基础参数说明先记线上必备通用参数InnoDB业务库备份必须带上-u指定数据库用户名-p交互式输入密码推荐避免明文泄露-h远程数据库IP本地可省略-P自定义端口如-P3307--single-transactionInnoDB热备不锁业务表--routines导出存储过程、自定义函数--triggers导出触发器--events导出定时事件--databases自动生成建库语句恢复不用手动建库--all-databases导出实例所有数据库| gzip备份同时压缩节省磁盘二、单数据库备份最常用1、普通无压缩备份语法mysqldump -u账号-p--single-transaction--routines--triggers--events--databases库名备份文件名.sql示例备份test库mysqldump-uroot-p--single-transaction--routines--triggers--events--databasestesttest_20260712.sql执行后输入数据库密码当前目录生成完整备份文件。2、备份直接压缩推荐线上使用mysqldump-uroot-p--single-transaction--routines--triggers--events--databasestest|gziptest_20260712.sql.gz3、只备份库内指定几张表去掉--databases库名后跟表名mysqldump-uroot-p--single-transactiontestuser ordertest_user_order.sql4、远程服务器备份mysqldump-uroot-p-h192.168.1.200-P3306--single-transaction--databasestestremote_test.sql三、多个数据库一次性备份使用--databases多个库名空格隔开恢复无需手动建库# 同时备份test、log、shop三个库mysqldump-uroot-p--single-transaction--routines--triggers--events--databasestestlog shopmulti_db.sql压缩版本mysqldump-uroot-p--single-transaction--routines--triggers--events--databasestestlog shop|gzipmulti_db.sql.gz四、整实例全库备份包含系统库mysql适用于服务器整机迁移、重装系统场景# 未压缩mysqldump-uroot-p--single-transaction--routines--triggers--events--all-databasesall_mysql.sql# 压缩备份mysqldump-uroot-p--single-transaction--routines--triggers--events--all-databases|gzipall_mysql.sql.gz注意全库备份会导出账号权限表恢复会覆盖本地MySQL账号跨服务器迁移谨慎使用。五、备份文件恢复方法1、普通sql文件恢复mysql-uroot-ptest_20260712.sql或登录MySQL内部执行mysql-uroot-p source/data/backup/test_20260712.sql;2、压缩包直接恢复不用解压gzip-d-ctest_20260712.sql.gz|mysql-uroot-p六、自动定时备份脚本Linux新建脚本mysql_back.sh实现每日备份、自动清理7天旧备份#!/bin/bashuserrootback_dir/data/mysql_backdate$(date%Y%m%d)mkdir-p$back_dir# 单库定时备份mysqldump -u$user-p数据库密码 --single-transaction--routines--triggers--events--databasestest|gzip$back_dir/test_$date.sql.gz# 删除7天前备份find$back_dir-name*.sql.gz-mtime7-delete添加执行权限并配置定时任务chmodx mysql_back.shcrontab-e# 每天凌晨2点执行备份02* * * /bin/bash /data/mysql_back.sh安全提醒公网服务器不要在脚本写明文密码手动交互式执行。七、常见注意事项MyISAM引擎不支持--single-transaction备份会锁表尽量业务低峰操作MySQL8.0若报错认证插件执行ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的密码;缺少--routines --triggers --events会丢失存储过程、触发器不加--databases参数导出的备份恢复前必须手动创建对应数据库大数据量备份务必开启gzip压缩减少磁盘占用。# 如何使用mysqldump命令进行数据库备份单库/多库/全库实操mysqldump是MySQL自带逻辑备份工具无需额外安装支持导出SQL文本备份兼容MySQL5.7、8.0适用于日常数据备份、迁移、恢复。下面按实际运维场景分步讲解命令可直接复制使用。一、基础参数说明先记线上必备通用参数InnoDB业务库备份必须带上-u指定数据库用户名-p交互式输入密码推荐避免明文泄露-h远程数据库IP本地可省略-P自定义端口如-P3307--single-transactionInnoDB热备不锁业务表--routines导出存储过程、自定义函数--triggers导出触发器--events导出定时事件--databases自动生成建库语句恢复不用手动建库--all-databases导出实例所有数据库| gzip备份同时压缩节省磁盘二、单数据库备份最常用1、普通无压缩备份语法mysqldump -u账号-p--single-transaction--routines--triggers--events--databases库名备份文件名.sql示例备份test库mysqldump-uroot-p--single-transaction--routines--triggers--events--databasestesttest_20260712.sql执行后输入数据库密码当前目录生成完整备份文件。2、备份直接压缩推荐线上使用mysqldump-uroot-p--single-transaction--routines--triggers--events--databasestest|gziptest_20260712.sql.gz3、只备份库内指定几张表去掉--databases库名后跟表名mysqldump-uroot-p--single-transactiontestuser ordertest_user_order.sql4、远程服务器备份mysqldump-uroot-p-h192.168.1.200-P3306--single-transaction--databasestestremote_test.sql三、多个数据库一次性备份使用--databases多个库名空格隔开恢复无需手动建库# 同时备份test、log、shop三个库mysqldump-uroot-p--single-transaction--routines--triggers--events--databasestestlog shopmulti_db.sql压缩版本mysqldump-uroot-p--single-transaction--routines--triggers--events--databasestestlog shop|gzipmulti_db.sql.gz四、整实例全库备份包含系统库mysql适用于服务器整机迁移、重装系统场景# 未压缩mysqldump-uroot-p--single-transaction--routines--triggers--events--all-databasesall_mysql.sql# 压缩备份mysqldump-uroot-p--single-transaction--routines--triggers--events--all-databases|gzipall_mysql.sql.gz注意全库备份会导出账号权限表恢复会覆盖本地MySQL账号跨服务器迁移谨慎使用。五、备份文件恢复方法1、普通sql文件恢复mysql-uroot-ptest_20260712.sql或登录MySQL内部执行mysql-uroot-p source/data/backup/test_20260712.sql;2、压缩包直接恢复不用解压gzip-d-ctest_20260712.sql.gz|mysql-uroot-p六、自动定时备份脚本Linux新建脚本mysql_back.sh实现每日备份、自动清理7天旧备份#!/bin/bashuserrootback_dir/data/mysql_backdate$(date%Y%m%d)mkdir-p$back_dir# 单库定时备份mysqldump -u$user-p数据库密码 --single-transaction--routines--triggers--events--databasestest|gzip$back_dir/test_$date.sql.gz# 删除7天前备份find$back_dir-name*.sql.gz-mtime7-delete添加执行权限并配置定时任务chmodx mysql_back.shcrontab-e# 每天凌晨2点执行备份02* * * /bin/bash /data/mysql_back.sh安全提醒公网服务器不要在脚本写明文密码手动交互式执行。