Не удается подключиться к базе данных, хранящейся на aws, с веб-сайтов Heroku или Replit. (mysql2, node.js)

#javascript #mysql #sql #node.js

Вопрос:

Проблема: Моя discord.js бот не подключается к базе данных mysql на aws. Бот размещается на replit, а также на heroku, но по какой-то причине я не могу подключиться к обоим. Я попытался подключиться к базе данных со своего ноутбука, и это сработало нормально, я даже разместил бота на своем ноутбуке, чтобы проверить, нет ли проблем с кодом, но он подключился просто отлично, он даже записал данные в базу данных.

редактировать: pw и хост написаны так, потому что это из replit, и я сохранил эти значения в .env, чтобы никто их не видел.

Ошибка: (узел 475) Необработанное предупреждение об ошибке: Ошибка: ВРЕМЯ ОЖИДАНИЯ в пуле обещаний.запрос

Вот код, который я использую:

 async function connect(){
const mysql = require('mysql2/promise');


    const pool = mysql.createPool({
        host: process.env['host'],
        user: 'admin',
        password: process.env['chave'],
        database: 'prdcorridas_main',
        port: 3306,
        waitForConnections: true,
        connectionLimit: 20,
        queueLimit: 0

    },);

    return pool;
}
connect()

async function query(query){
    const conn = await connect();
    return await conn.query(query);
}

module.exports = {query}
 

Ответ №1:

Я обнаружил проблему, это была просто человеческая ошибка, вероятно, из-за моей усталости при создании базы данных.

Решение: Я забыл указать на веб-сайте aws ip-адрес компьютера, на котором размещен бот, потому что я намеренно ограничил «доступ к доходу» только перечисленными ip-адресами.