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

标签 mysql sql backup mysqlimport

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

主要问题是该文件有 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/

相关文章:

sql - SQL Server 2012 中的 XML 与 JSON

mysql - 如何可靠地恢复 MySQL blob

MySQL:如果这是真的,如果不是,那么这是

sql - Spark Elasticsearch 连接器 : how to select _id field?

php - 错误 500 安装 Magento

sql - 将公共(public)列上长度不等的两个文件与 linux 命令行进行多次匹配

node.js - 备份数据库

amazon-web-services - 备份:Amazon S3或Glacier-很多小文件吗?

php - 从一张 table 上得到 parent 并在 Laravel 中计算那里的 child

mysql - 使用联接表在多个表中进行单个请求搜索