【问题标题】:Node - MySQL Connection Error. Unique to Node节点 - MySQL 连接错误。节点独有
【发布时间】:2022-01-26 00:35:35
【问题描述】:

我有一台在 Mac OSX 10.15 上本地运行的 mysql 8.0.27 服务器。我正在为数据库开发 node.js API。当我尝试构建服务器时,出现此错误。

if (error) throw error;
               ^

Error: connect ECONNREFUSED ::1:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16) {
  errno: -61,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '::1',
  port: 3306,
  fatal: true
}

我认为它与节点隔离,因为我还使用带有 python 的 jupyter notebook 来构建数据库并用数据预填充它。相同的连接配置很容易连接到数据库。同一用户。

我已经尝试过 mysql 和 mysql2 npm 包。在这一点上,我需要一些帮助来指导我进行故障排除。

【问题讨论】:

  • ::1 应该是127.0.0.1localhost,另外,对于mac,你可能需要使用socketPath
  • 感谢主机配置为 localhost 时无法正常工作。我一使用 IP 地址,它就起作用了。奇怪的是,它与 localhost 作为主机与 python MySQL 库一起工作,但不是节点的。不过已经解决了。

标签: mysql node.js


【解决方案1】:

首先,使用 127.0.0.1 而不是 localhost。

然后你会看到下面的错误;

  code: 'ER_NOT_SUPPORTED_AUTH_MODE',
  errno: 1251,
  sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',

使用以下 SQL 命令修复该问题;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password' and then flush privileges

这对我有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    相关资源
    最近更新 更多