从mysqldump备份生成具有不同名称的数据库

Eug*_*y89 6 mysql mysqldump

数据库"db"在backup.sql中备份.有没有办法从脚本中恢复与"db"名称不同的数据库?

先感谢您!

Hen*_*nry 10

当然,当你导入它时,你这样做是正确的:

mysql -uuser -ppassword databasename < mydump.sql
Run Code Online (Sandbox Code Playgroud)

你可以在我写的地方放任何你想要的东西databasename- 只要该数据库确实存在:)

  • 我认为这种方法可行,前提是`mydump.sql`不包含`CREATE DATABASE <original_db>;`和/或`USE <original_db>;`在后一种情况下,这些语句覆盖命令行参数,导入查询在`<original_db>上运行,`databasename`将不会导入. (5认同)

Ask*_*arn 6

这取决于您如何创建 MySQL dB 转储文件

例如,如果你这样做

mysqldump -h localhost -u user mydb -pXXX > mydb.sql
Run Code Online (Sandbox Code Playgroud)

您的 sql 转储文件中不会有任何 CREATE DATABASE 语句。但我认为你只能备份一个数据库。

例如,如果您使用 --database 或 --all-databases 选项创建 mysql 转储文件

mysqldump -h localhost -u user --database mydb -pXXX > mydb.sql 
mysqldump -h localhost -u user --all-databases -pXXX > alldb.sql
Run Code Online (Sandbox Code Playgroud)

然后您将在 mysql 转储文件中看到 CREATE DATABASE 语句。如果您想要不同的 dB 名称,则需要在数据库还原之前更改它。