MySQL单库备份最常用可靠方式是mysqldump,推荐命令:mysqldump -u root -p --single-transaction --routines --triggers --set-gtid-purged=OFF --default-character-set=utf8mb4 myapp > myapp_$(date +%F).sql,需检查权限、磁盘空间并验证备份有效性。
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 ,观察是否报错
不复杂但容易忽略。