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

时间:2011-05-13 14:45:33

标签: mysql mysqldump

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

提前谢谢你!

4 个答案:

答案 0 :(得分:9)

当然,当您导入它时,您可以这样做:

mysql -uuser -ppassword databasename < mydump.sql

只要该数据库确实存在,您就可以在我写databasename的地方放置任何内容:)

答案 1 :(得分:3)

如果数据库的名称包含SQL文件,我找不到除修改SQL文件之外的任何其他方法。

我最喜欢的命令:

    sed -i "s/\`old_db_name\`/\`new_db_name\`/g" my_sql_file.sql

答案 2 :(得分:2)

这取决于您创建MySQL dB转储文件的方式

例如,如果你这样做

mysqldump -h localhost -u user mydb -pXXX > mydb.sql

您的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

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

答案 3 :(得分:1)

打开.sql文件并更改其中的数据库名称。

您可以使用文本编辑器,例如记事本或gedit。