【问题标题】:Nodejs sequelize RangeError using mysqlNodejs使用mysql续集RangeError
【发布时间】:2021-10-10 22:05:57
【问题描述】:

我在 nodejs 和 mysql 中使用 sequelize。我正在尝试运行命令npx sequelize db:create,但它给了我这个错误。不知道在这里做什么。任何帮助表示赞赏。谢谢。

Sequelize CLI [Node: 14.17.4, CLI: 6.2.0, ORM: 6.6.2]

Loaded configuration file "src/config.js".

Using environment "development".
internal/buffer.js:83 
    throw new ERR_OUT_OF_RANGE(type || 'offset', RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range.

It must be >= 0 and <= 5. Received 9 at boundsError (internal/buffer.js:83:9) 
at Buffer.readUInt32LE (internal/buffer.js:217:5) 
at Packet.readInt32 (/root/sequelize-test/node_modules/mysql2/lib/packets/packet.js:103:24) 
at Function.fromPacket (/root/sequelize-> > test/node_modules/mysql2/lib/packets/handshake.js:63:32) 
at ClientHandshake.handshakeInit (/root/sequelize-test/node_modules/mysql2/lib/commands/client_handshake.js:93:40) 
at ClientHandshake.execute (/root/sequelize-test/node_modules/mysql2/lib/commands/command.js:39:22) 
at Connection.handlePacket (/root/sequelize-test/node_modules/mysql2/lib/connection.js:425:32)
at PacketParser.onPacket (/root/sequelize-test/node_modules/mysql2/lib/connection.js:75:12) 
at PacketParser.executeStart (/root/sequelize-test/node_modules/mysql2/lib/packet_parser.js:75:16) at Socket. (/root/sequelize-test/node_modules/mysql2/lib/connection.js:82:25) 
at Socket.emit (events.js:400:28) at addChunk (internal/streams/readable.js:290:12) 
at readableAddChunk (internal/streams/readable.js:265:9) 
at Socket.Readable.push (internal/streams/readable.js:204:10) 
at TCP.onStreamRead (internal/stream_base_commons.js:188:23) { code: 'ERR_OUT_OF_RANGE' }

我的数据库配置

module.exports = {
  development: {
    username: 'root',
    password: 'root123456',
    database: 'test_run',
    host: 'localhost',
    port: 33060,
    dialect: 'mysql',
    timezone: '+06:00',
    // dialectOptions: {
      //   bigNumberStrings: true,
      // },
    },
};

【问题讨论】:

  • 这看起来像是mysql2 模块中的一个错误,以及它与 MySQL 服务器的交互方式。请查找/创建一个错误报告,开始您的 MySQL 服务器版本以及与您的连接信息一起发送的 sql 实现。
  • 当我更改端口 ot 3306 然后它显示访问被拒绝错误
  • 答案是一样的。这通过了客户端 mysql2 实现的连接阶段,然后在内部失败。它可能期待不同的服务器响应。
  • 更新:我重新安装了 mysql 并创建了一个用户,然后命令 'npx sequelize db:create` 起作用了。但是当我尝试运行该应用程序时,出现了同样的错误并且应用程序崩溃了。
  • 当你忽略建议,重新启动/重新安装而不进行任何分析时,你不会学到很多东西。

标签: javascript mysql node.js ubuntu sequelize.js


【解决方案1】:

确保您已使用此命令全局安装 MySQL2:

npm i -g mysql2

如果问题仍然存在,请尝试将节点版本降级到 10。

问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多