我正在运行一个NodeJS应用程序托管在一个(linux)专用Plesk服务器上,在一个子域中。试图连接到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时,它连接得很好,这意味着凭证是正确的,并且用户有权限。
是什么导致了这一切?
发布于 2022-08-17 17:42:49
想出了解决办法。我所要做的就是将主机更改为127.0.0.1:
const con = mysql.createConnection({
host: "127.0.0.1",
user: "username",
password: "password",
database: "myDatabase"
});我不确定原因。这很可能与运行在子域上这一事实有关。如果有人能说明原因的话就太好了。
https://stackoverflow.com/questions/73317991
复制相似问题