导入数据库架构。

6

我有一个包含模式和数据的mysqldump文件。

我只需要从我的sqldump中导入数据库模式。我尝试了以下命令:


```mysql mysql -u username -p dbname < dumpfile.sql --no-data ```
mysql -uUSER -pPASSWORD < filename.sql

但是这并没有帮助。它同时导入模式和数据。

我该怎么做呢?


1
你是否期望mysql有选择地忽略filename.sql中的SQL代码? - Álvaro González
1
首先确保您已经备份了仅架构,导入命令将是相同的。 - Vamsi Krishna B
4个回答

6

如果您不想再次丢弃所有内容,只需进行一些快速测试,您也可以通过使用非常肮脏的方式来作弊。

grep -ve '^INSERT' dump.sql > dump-no-data.sql

不过,请勿在生产环境中使用。


2
据我所知,如果数据已经在垃圾堆中,你是无法删除它的,因为它会再次被插入。但是,你可以使用“-no-data”选项来导出数据库时不包含数据,具体操作如下: mysqldump -u username -p -h localhost –no-data database_name > dump.sql

1

if you want try this:

mysql -u USER -pPASSWORD database < database_schema.sql

1

在我看来,最简单的解决方案是只需在常规文本编辑器中打开转储文件,并将CREATE TABLE ...语句复制到另一个文件中。我甚至不会考虑做其他任何事情。

如果由于某种原因这不可行,您可以简单地创建一个新的转储文件,这次将结构和数据分别保存在两个文件中。

如果这也不可行,您可以将转储文件加载到本地MySQL服务器中,然后从那里创建新的转储文件,或者使用像HeidiSQL这样的GUI工具将结构直接传输到目标服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接