首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RangeError [ERR_OUT_OF_RANGE]:"sourceStart“的值超出范围。必须是<= 9。已收到13

RangeError [ERR_OUT_OF_RANGE]:"sourceStart“的值超出范围。必须是<= 9。已收到13
EN

Stack Overflow用户
提问于 2020-07-31 13:53:14
回答 2查看 834关注 0票数 0

我正在尝试通过创建一个池来在我的supermasters表中插入一行-

代码语言:javascript
复制
const { createPool } = require('mysql');

const pool = createPool({
    port: process.env.DB_PORT,
    host: process.env.Host,
    user: process.env.DB_USERNAME,
    password: process.env.DB_PASSWORD,
    database: 'users',
    connectionLimit: 8,
});

module.exports = pool;

我的supermasters表有以下各列:

代码语言:javascript
复制
username varchar(10) PK 
password varchar(20) 
fullname varchar(20) 
email varchar(30) 
phoneNumber varchar(10) 

具体来说,我在创建连接的这部分代码中遇到错误:--

代码语言:javascript
复制
const pool = require('../../config/database');

module.exports = {
    create: (data, callback) => {
        const my_query = 'insert into supermasters(username,password,fullname,email,phoneNumber) values(?,?,?,?,?)';

        pool.query(my_query, [data.username, data.password, data.fullname, data.email, data.phoneNumber], (error, results, fields) => {

            if (error)
                return callback(error);
            else {
                return callback(null, results);
            }
        })
    }
}

我的错误是:--

代码语言:javascript
复制
Server running at port 3000
D:\web-development\elite\server\node_modules\mysql\lib\protocol\Parser.js:437
      throw err; // Rethrow non-MySQL errors
      ^

RangeError [ERR_OUT_OF_RANGE]: The value of "sourceStart" is out of range. It must be <= 9. Received 13
    at _copy (buffer.js:240:11)
    at Buffer.copy (buffer.js:768:12)
    at Parser.parseBuffer (D:\web-development\elite\server\node_modules\mysql\lib\protocol\Parser.js:272:16)
    at HandshakeInitializationPacket.parse (D:\web-development\elite\server\node_modules\mysql\lib\protocol\packets\HandshakeInitializationPacket.js:34:37)
    at Protocol._parsePacket (D:\web-development\elite\server\node_modules\mysql\lib\protocol\Protocol.js:272:12)
    at Parser._parsePacket (D:\web-development\elite\server\node_modules\mysql\lib\protocol\Parser.js:433:10)
    at Parser.write (D:\web-development\elite\server\node_modules\mysql\lib\protocol\Parser.js:43:10)
    at Protocol.write (D:\web-development\elite\server\node_modules\mysql\lib\protocol\Protocol.js:38:16)
    at Socket.<anonymous> (D:\web-development\elite\server\node_modules\mysql\lib\Connection.js:88:28)
    at Socket.<anonymous> (D:\web-development\elite\server\node_modules\mysql\lib\Connection.js:526:10) {
  code: 'ERR_OUT_OF_RANGE'
}
[nodemon] app crashed - waiting for file changes before starting...
EN

回答 2

Stack Overflow用户

发布于 2020-07-31 15:17:05

问题解决了-我在mysql工作台中运行了以下查询:

ALTER USER 'root'@'localhost‘,通过’mysql_native_password‘标识

我在这里找到的:-

MySQL 8.0 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

票数 0
EN

Stack Overflow用户

发布于 2021-05-08 21:07:09

我发现我使用了错误的端口:'33060‘而不是'3306',我建议您确保环境变量都是正确的

也许可以尝试对createPool()输入进行硬编码,同时在将它们委托给环境变量之前进行测试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63186457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档