繁体   English   中英

如何从包含多个数据库的.sql文件导入单个数据库

[英]How do I import a single database from a .sql file that contains multiple databases

如何从具有多个数据库的备份文件导入单个数据库?

主要问题是该文件的大小为921mb,所以我无法在记事本或我拥有的任何IDE中成功打开它。 如果可以,我将获得所需的SQL,然后将其手动复制到phpMyAdmin中。

如果我能直接从备份文件中导入它会很好。

我想可能是这样,但我无法正常工作

mysql -u root -p --database1 database1 < backup.sql

有人可以帮忙吗? 谢谢

目标数据库是否已经存在?

如果是这样的话:

mysqlimport -u [uname] -p[pass] [dbname] [backupfile.sql]

除此以外:

mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

我在某些数据加载脚本中遇到了这样的问题。 脚本的形式为:

insert into table(a,b,c) values((a0,b0,c0),(a1,b1,c1),...(a50000,b50000,c50000));

并包含5到几十个这些超长语句。 我想将数据导入到的系统无法识别这种格式。 需要这样的形式:

insert into table(a,b,c) values(a0,b0,c0);
insert into table(a,b,c) values(a1,b1,c1);
...
insert into table(a,b,c) values(a50000,b50000,c50000);

甚至较小的脚本也只有几个MB,最多需要一个小时才能加载到文本编辑器中。 因此,在标准文本编辑器中进行这些更改是不可能的。 我编写了一个快速的小型Java应用程序,它以第一种格式读取并创建了一个包含第二种格式的文本文件。 即使最大的脚本也只花了不到20秒的时间。 是的,那是几秒钟而不是几分钟。 即使很多数据都用引号引起来,所以我不得不使解析器知道引号。

您可以编写自己的应用程序(Java,C#,Perl等)来执行类似的操作。 仅将与所需数据库有关的那些行写入单独的脚本文件。 编写和测试该应用程序将花费数小时或数天的时间,但它可能花了您更多的时间,而不仅仅是研究用于处理大型文件的文本编辑器-只是发现它们并不是真的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM