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