Соединение между MariaDB и NodeJS не работает

#javascript #sql #node.js #mariadb #port

#javascript #sql #node.js #mariadb #порт

Вопрос:

Я использую VServer от Ionos для небольшого проекта. Я установил 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, но на этот раз я не получил сообщение об ошибке, оно загружается вечно, и ничего не происходит.

Я был бы очень благодарен за любую помощь…

Комментарии:

1. Настроен ли MariaDB локально на вашем компьютере и на порту 3306? Вы пробовали подключиться через терминал / консоль или через графический интерфейс?

2. Я не уверен на 100%, что он находится на 3306, но я выполнил обычную установку, а стандартный порт — 3306. Я могу подключиться к своей базе данных с помощью phpmyadmin и с помощью консоли putty. Кстати, я использовал этот учебник для Maria DB и phpmyadmin zap-hosting.com/guides/docs/de/vserver_linux_mariadbinstall И еще один для express и nodejs

3. Я также убедился, что в интерфейсе ionos открыт порт 3306… но это не помогло…

Ответ №1:

Итак, я нашел решение своей проблемы.

Я проверил, работает ли моя служба MariaDB, и нет, это не так ^^