【发布时间】:2022-01-13 20:38:30
【问题描述】:
我正在为一个小项目使用 Ionos 的 vServer。我安装了 MariaDB 和 NodeJS。目前我正在尝试将它们连接起来。这是我的代码:
const mariadb = require('mariadb');
const pool = mariadb.createPool({
host: 'localhost',
user:'root',
password: 'xxxxxxxxx',
database: 'christmastrees',
connectionLimit: 5,
});
async function asyncFunction() {
let conn;
try {
conn = await pool.getConnection();
const rows = await conn.query("SELECT * from bäume");
console.log(rows); //[ {val: 1}, meta: ... ]
} catch (err) {
throw err;
} finally {
if (conn) return conn.end();
}
}
但是在执行文件(节点应用程序)时,几秒钟后我收到一条错误消息
Error: connect ECONNREFUSED 127.0.0.1:3306
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1157:16)
From event:
at _registerHandshakeCmd (/root/server/node_modules/mariadb/lib/connection.js:745:11)
at /root/server/node_modules/mariadb/lib/connection.js:57:11
at new Promise (<anonymous>)
at Connection.connect (/root/server/node_modules/mariadb/lib/connection.js:56:16)
at createConnectionPoolPromise (/root/server/node_modules/mariadb/lib/pool-promise.js:31:8)
at creationTryout (/root/server/node_modules/mariadb/lib/pool-base.js:373:9)
at listOnTimeout (node:internal/timers:557:17)
at processTimers (node:internal/timers:500:7) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 3306,
fatal: true
}
所以我寻求帮助,2 小时后,我确实只找到了一个想法。我将这行代码添加到我的连接中...
端口:'/var/run/mysqld/mysqld.sock'
我再次尝试使用 node 应用程序,但这一次我没有收到错误消息,它一直在加载并且没有任何反应。
如果有任何帮助,我将不胜感激......
【问题讨论】:
-
MariaDb 是否在您的计算机和端口 3306 上本地设置?您是否尝试过通过终端/控制台或 gui 连接?
-
我不是 100% 确定它在 3306 上,但我进行了正常安装,标准端口是 3306。我可以使用 phpmyadmin 和 putty 控制台连接到我的数据库。顺便说一句,我将本教程用于 Maria DB 和 phpmyadmin zap-hosting.com/guides/docs/de/vserver_linux_mariadbinstall,另一个用于 express 和 nodejs
-
我还确保在 ionos 界面中打开了 3306 端口...但没有帮助...
标签: javascript sql node.js mariadb port