首页/数据/数据库速查/mysqldump 建库语句控制(-n / -B)
备份与恢复56 条

mysqldump 建库语句控制(-n / -B)

-B(--databases)生成 CREATE DATABASE IF NOT EXISTS 与 USE;-n(--no-create-db)则抑制建库语句,用于恢复到指定库名或合并到已有库。

数据库速查数据更新于 2026-10-12
默认单库不带 -B:无 CREATE DATABASE、无 USE
-B带建库与 USE 语句
-n显式禁止建库语句(与 -B 组合时使用)

组合用法

组合用法
# 带建库:跨实例迁移
mysqldump -uroot -p --databases appdb > with_db.sql
# 同一文件不建库、只 USE:导入到已存在的目标库
mysqldump -uroot -p --databases -n appdb > with_use.sql
恢复到改名后的库时,-n 或者恢复时显式指定库名都比事后 sed 替换 USE 语句更稳妥。

易错点

  • -B 导出的文件里库名固定,恢复时不能直接改目标库名,要预处理 USE/CREATE 语句
  • 恢复前忘记目标库不存在:不带 -n 的文件会报 Unknown database

数据来源与参考

  • MySQL 8.0 Reference Manual: mysqldump --no-create-db

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌