【发布时间】:2013-02-15 09:02:10
【问题描述】:
我在 Windows XP 上本地安装了 MariaDB。
我创建了一个空数据库 db_y,我想用数据库 db_x 的表填充它,我从 MySQL 实例(使用 HeidiSQL)导出为转储文件。
当我导入将文件 db_x.sql 转储到 MariaDB 实例中:
c:\ > mysql -u root -h localhost -p db_y < "X:/archive/db_x.sql"
我得到了以下信息:
- MariaDB-inst
+db_x
+db_y
db_y 保持为空,并添加了转储文件中的db_x(db_x 是我导出的原始数据库的数据库名称)。
我必须做什么才能获得所需的数据库名称?
我想我可以更改 db_x.sql 文件中的数据库名称,但我不想打开这么大的文件。
我可以更改上面的导入命令以更改数据库名称吗?
我也对这种解决方案感兴趣:
CREATE DATABASE y FROM DATABASE x
这样的事情可能吗?
在网上我找到了不推荐的解决方案 RENAME DATABASE 和 ALTER DATABASE db_x UPGRADE DATA DIRECTORY NAME
但真诚地,我更喜欢用新名称创建一个新数据库。
感谢您的帮助。
【问题讨论】:
-
@krshekhar 请不要使用代码格式来突出显示随机单词(如 MariaDB 或 Windows XP)它仅用于实际代码。
-
@AndrewBarber 感谢您的评论,我会记住的。
-
我发现你的 import 语法很奇怪,通常是这样的:mysql -u username -p -h localhost database_name
-
请确保转储中的表名没有数据库名,即它应该是“tbl”,而不是“db_x.tbl”。如果你有数据库名称,你应该再次转储
db_x -
@BojanK 感谢您的回复。下一次转储导入我会按照你的建议做,如果有效果会通知。