如何从包含多个数据库的备份文件导入单个数据库?
主要问题是该文件有 921mb,因此我无法在记事本或我拥有的任何 IDE 中成功打开它。如果我能做到这一点,我将获得所需的 SQL,然后手动将其复制到 phpMyAdmin 中。
如果我可以直接从备份文件导入它,那就太好了。
我想它会是这样的,但我无法让它工作
mysql -u root -p --database1 database1 < backup.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 等等)来执行类似的操作。仅将与所需数据库相关的行写入单独的脚本文件。编写和测试应用程序需要几个小时或几天的时间,但仅仅研究可处理非常大文件的文本编辑器可能需要花费更多时间 - 只是为了发现它们实际上并不支持。
关于mysql - 如何从包含多个数据库的 .sql 文件导入单个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27170303/