繁体   English   中英

使用 NodeJS mysql2 连接到 MySql 时连接被拒绝

[英]Connection refused when connecting to MySql using NodeJS mysql2

我正在运行一个托管在 (linux) 专用 Plesk 服务器上的 NodeJS 应用程序,位于子域下。 尝试连接到 MariaDB mysql 服务器。 NodeJS 代码:

const mysql = require('mysql2');

const con = mysql.createConnection({
  host: "localhost",
  user: "username",
  password: "password",
  database: "myDatabase"
});
global.MYSQL_CONNECTION = con;

function Connect(onSuccess){
    con.connect(function(err) {
        if (err) throw err;
        console.log("MySQL connected successfully.");
        onSuccess(con);
      });
}

当我运行它时,我收到以下错误:

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

但是,当我在 bash 终端上运行mysql -hlocalhost -uusername -ppassword时,它连接正常,这意味着凭据正确且用户具有权限。

这可能是什么原因造成的?

想出了解决这个问题的办法。 我所要做的就是将主机更改为 127.0.0.1:

const con = mysql.createConnection({
  host: "127.0.0.1",
  user: "username",
  password: "password",
  database: "myDatabase"
});

我不确定原因。 这很可能与它在子域上运行的事实有关。 如果有人能说明原因,那就太好了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM