mysql如何只备份指定数据库_mysql单库备份技巧

来源:这里教程网 时间:2026-02-28 20:34:11 作者:

MySQL 单库备份最常用、最可靠的方式是使用

mysqldump
命令,配合数据库名直接导出。只要权限正确、服务正常,一条命令就能完成干净的逻辑备份。

只备份指定数据库(基础命令)

执行以下命令即可仅备份某个数据库(例如

myapp
):

mysqldump -u root -p myapp > myapp_backup.sql

系统会提示输入密码,成功后生成纯 SQL 文件,包含建库、建表、插入数据等完整语句。注意:不要在命令中写

USE myapp;
或额外加
--databases
参数
——后者会多包一层
CREATE DATABASE
USE
,对单库备份反而冗余。

推荐加上的实用参数

为提升兼容性与恢复可靠性,建议加上这几个关键选项:

--single-transaction
:对 InnoDB 表做一致性快照,避免锁表(备份时业务可继续读写)
--routines
:一并导出存储过程和函数
--triggers
:导出触发器
--set-gtid-purged=OFF
:若用 GTID 且不打算跨实例恢复,关掉该选项可避免导入报错
--default-character-set=utf8mb4
:显式指定字符集,防止中文乱码

组合示例:

mysqldump -u root -p --single-transaction --routines --triggers --set-gtid-purged=OFF --default-character-set=utf8mb4 myapp > myapp_$(date +%F).sql

备份前检查与避坑提醒

执行前快速确认几件事,能省去后续很多麻烦:

确保用户有该数据库的
SELECT
权限,以及
LOCK TABLES
(除非用了
--single-transaction
磁盘空间是否足够?
mysqldump
输出的是文本,通常比实际数据文件大 1.2–1.5 倍
避免在从库上用
--master-data
,除非你明确需要记录主库 binlog 位置
不要用
mysqlhotcopy
或直接拷贝
.frm/.ibd
文件来“单库备份”——它不是原子操作,极易损坏,也不支持 InnoDB 通用表空间

快速验证备份有效性

备份不是目的,能恢复才是关键。简单验证方法:

head -20 myapp_backup.sql
看开头是否有
CREATE DATABASE
USE myapp
(有则说明是单库格式)
grep -c "INSERT INTO" myapp_backup.sql
确认数据行存在
挑一个测试库,执行
mysql -u root -p -e "CREATE DATABASE myapp_test;"
,再导入:
mysql -u root -p myapp_test ,观察是否报错

不复杂但容易忽略。

相关推荐