【问题标题】:"Allocation failed - process out of memory" when index.js has "require('mysql2');"当 index.js 有“require('mysql2');”时,“分配失败 - 进程内存不足”
【发布时间】:2021-03-08 17:27:27
【问题描述】:

目的

我想使用mysql2 (npm)。

步骤

  1. 通过brew install mysql安装MySQL,设置确保我可以通过mysql -r root -p登录
  2. 运行npm initnpm install mysql2 --save
  3. 创建index.js(见下文)
  4. 运行node index.js
  5. 请参阅下面的错误。

步骤(检查mysql2是否导致问题)

  1. 将 index.js 的第二行注释掉
  2. 运行node index.js
  3. 确认终端显示“之前”和“之后”没有错误。

index.js

console.log('BEFORE');
const mysql = require('mysql2');
console.log('AFTER');

控制台(错误消息)

BEFORE

<--- Last few GCs --->

[3203:0x150008000]       34 ms: Scavenge 2.8 (4.6) -> 2.5 (5.3) MB, 0.5 / 0.0 ms  (average mu = 1.000, current mu = 1.000) allocation failure 
[3203:0x150008000]       42 ms: Scavenge 3.8 (7.8) -> 3.5 (8.5) MB, 0.3 / 0.0 ms  (average mu = 1.000, current mu = 1.000) allocation failure 

<--- JS stacktrace --->

FATAL ERROR: wasm code commit Allocation failed - process out of memory
1: 0x1040fe9d8 node::Abort() [/Users/{MY_USER_NAME}/.nvm/versions/node/v14.15.5/bin/node]
...
63: 0x10492c1e8 Builtins_JSEntry [/Users/{MY_USER_NAME}/.nvm/versions/node/v14.15.5/bin/node]
64: 0x150008000 
zsh: abort      node index.js

环境

  • Mackbook Air(M1,2020)
  • macOS:11.2.2
  • 节点:14.15.5
  • npm: 7.6.1
  • mysql2 (npm): 2.2.5
  • mysql (brew): 版本 8.0.23 for osx10.16 on x86_64 (Homebrew)

【问题讨论】:

  • 我投票结束这个问题,因为它可能无关紧要。几个月后软件已经稳定下来。

标签: mysql node.js apple-m1 node-mysql2


【解决方案1】:

我有同样的问题。从节点 v14 升级到 v15 解决了它。

【讨论】:

  • 欢迎来到 StackOverflow!我建议不要在答案中使用修辞问题。他们冒着被误解为根本不是答案的风险。您正在尝试回答此页面顶部的问题,不是吗?否则请删除此帖。
  • 我在 M1 芯片上使用 Node V14.16.1 时遇到了类似的问题,使用 node v15.7.0 并没有解决这个问题,保持所有其他事情相同 - 所以对我来说,升级到 V15 不是解决方案
猜你喜欢
  • 2018-02-05
  • 2016-05-29
  • 1970-01-01
  • 2014-12-27
  • 2021-04-27
  • 2014-11-23
  • 2019-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多