我正在使用felixge/node-mysql模块与node.js中的MySQL数据库进行交互。我在一个INSERT
请求中向数据库中插入大量数据时遇到了问题。
尽管here描述了如何使用large向数据库添加500'000条记录 INSERT查询,我的脚本失败,出现以下错误,包含更少量的数据
{ [Error: write EPIPE] code: 'EPIPE', errno: 'EPIPE', syscall: 'write', fatal: true }
我认为这个错误与mysql-node的github Load data infile fails with EPIPE for large files中的问题#359有某种联系,自创建以来最后5个月未分配给某人。
那么帽子是实际的查询大小,保证交付?
答案 0 :(得分:4)
我刚才遇到了这个问题,事实证明我正在谈论的Mysql服务器(它在Amazon RDS上)的max_allowed_packet
选项设置得非常低。越来越多的人为我解决了这个问题。
我通过命令行上的mysql
运行(非常长的)查询,并搜索我收到的错误消息,得到了我需要的线索。然后,我从此处获得了有关在Amazon RDS上增加选项的说明:http://dev.n0ise.net/2012/10/amazon-rds-error-2006-hy000-at-line-xxx-mysql-server-has-gone-away/
另请参阅此SO答案,了解您的特定数据库上设置了哪个选项:https://stackoverflow.com/a/5688506/496046
答案 1 :(得分:2)
我也遇到过这个问题。
我试过这个库:https://github.com/sidorares/node-mysql2
这是felixge的mysql驱动程序的替代品,我没有看到使用它的EPIPE错误。