当前位置: 首页 > 面试题库 >

如何将大型sql文件导入mysql表

殷承恩
2023-03-14
问题内容

我有一个php脚本,用于解析XML文件并创建一个看起来像这样的大型SQL文件:

INSERT IGNORE INTO table(field1,field2,field3...)
VALUES ("value1","value2",int1...),
("value1","value2",int1)...etc

这个文件加起来超过20GB(我已经在2.5GB的文件上进行过测试,但它也失败了)。

我已经尝试过类似的命令:

mysql -u root -p table_name </var/www/bigfile.sql

这适用于较小的文件,例如大约50MB。但不适用于较大的文件。

我试过了:

mysql> source /var/www/bigfile.sql

我也尝试了mysqlimport,但是甚至无法正确处理我的文件。

我不断收到一条错误消息,内容是

ERROR 2006 (HY000): MySQL server has gone away

发生约 我开始执行后30秒。

我将allowed_max_packet设置为4GB,但在使用SHOW VARIABLES进行验证时,它仅显示1GB。

有没有一种方法可以做到又不浪费10个小时呢?


问题答案:

尝试将文件拆分为多个INSERT查询。



 类似资料:
  • 问题内容: 我是一名学生,正在进行一些涉及数据挖掘的研究。我有几个自愿的“节点”服务器,这些服务器收集并生成SQL文件供我导入到我的服务器上并进行分析。 问题是,这些文件很大,我需要一种快速导入它们的方法。网络最近扩展了,现在硬盘上没有足够的吞吐量供MySQL控制台将其导入时导入。时间很重要- 进行研究存在最后期限,我想积极主动地收集尽可能多的时间,并且没有等待插入的队列。 我想知道是否有更好的方

  • 问题内容: 我有一个名为的数据库。我还没有在那创建任何表。但是我有一个SQL文件,其中包含数据库的所有必需数据。该文件位于中。该文件的大小约为103 MB。我正在使用wamp服务器。 我已在MySQL控制台中使用以下语法导入文件: 但这没有用。 问题答案: 最后,我解决了这个问题。我将“ nitm.sql”文件放在“ mysql”文件夹的“ bin”文件中,并使用以下语法。 这行得通。

  • 问题内容: 标题不言自明。有没有办法直接进行这种导入? 问题答案: 来自SQL Server的.BAK文件采用Microsoft磁带格式(MTF)参考: http //www.fpns.net/willy/msbackup.htm bak文件可能包含SQL Server用于存储数据库的LDF和MDF文件。 您将需要使用SQL Server来提取它们。SQL Server Express是免费的,并

  • 问题内容: 我想在Windows 7计算机上导入350MB的MySQL .sql文件。我通常通过使用 因为<在Powershell中不起作用。 我的.sql文件这次出现错误。我宁愿只跳过错误的行并继续导入。如何强制在Windows上继续导入? 在基于Unix / Linux的系统上,我可以使用 但是–force似乎无法与-e“ source …”命令一起使用(可以理解的是)。 谢谢,迈克 问题答案

  • 问题内容: 我试图通过phpMyAdmin导入一个大的sql文件…但是它一直显示错误 ‘MySql服务器已消失’ 该怎么办? 问题答案: 如前所述这里: MySQL服务器消失(错误2006)的两个最常见的原因(和修复)是: 服务器超时并关闭了连接。怎么修: 检查mysqld的my.cnf配置文件中的wait_timeout变量是否足够大。在Debian:上,设置秒(当错误2006消失时,您可以调整

  • 问题内容: 我想将超过1GB的文件导入localhost中的数据库。但是UI不允许导入这么大的文件。 有什么可能的方法来执行此操作,例如任何查询以导入.sql文件? 谢谢 问题答案: 我怀疑您将能够通过phpmyadmin导入1 GB文件,但是您可以尝试通过增加php.ini中的以下值并重新启动Wamp来进行尝试。 您也可以在命令提示符下尝试以下命令,根据您的MySQL安装,路径可能有所不同。 如