MySQL2 Etimedout Ошибка с плагибкой скоростью, но продолжение подключает мелкиеMySql

Форум по Mysql
Ответить
Anonymous
 MySQL2 Etimedout Ошибка с плагибкой скоростью, но продолжение подключает мелкие

Сообщение Anonymous »

Я работаю над бэкэнд -проектом node.js и сталкиваюсь со странной проблемой, связанной с соединениями MySQL. Вот ситуация: < /p>

Я использую базу данных MySQL, размещенную в цифровом океане (управляемый кластер MySQL). < /Li>
Проседавание подключено к базе данных, и все мои модели и Queries работают, как ожидается. библиотека с ограниченной скоростью для подачи запроса дросселирования), я сталкиваюсь с ошибкой Connect Etimedout. < /li>
< /ol>

Код: Выделить всё

import { Sequelize } from "sequelize";
import { production } from "./config.js";

const sequelize = new Sequelize(
production.DB,
production.USERNAME,
production.PASSWORD,
{
host: production.HOST,
port: production.PORT,
dialect: "mysql",
dialectOptions: {
charset: "utf8",
},
timezone: "+03:00",
}
);

sequelize.authenticate()
.then(() => console.log("Connection has been established successfully."))
.catch((err) => console.error("Unable to connect to the database:", err));
< /code>
Это успешно подключается каждый раз.import { RateLimiterMySQL } from "rate-limiter-flexible";
import mysql from "mysql2";
import { production } from "../config/config.js";

const mysqlConfig = {
host: production.HOST,
user: production.USERNAME,
password: production.PASSWORD,
database: production.DB,
port: production.PORT,
// connectTimeout: 10000 // even tried increasing this
};

const setup = async () => {
const pool = mysql.createPool(mysqlConfig);

const createBlockTableSQL = `
CREATE TABLE IF NOT EXISTS rate_limit_block (
ip_address varchar(100) NOT NULL,
points int(11) unsigned NOT NULL DEFAULT '0',
expire BIGINT,
PRIMARY KEY (ip_address)
)
`;

return new Promise((resolve, reject) => {
pool.query(createBlockTableSQL, (err) => {
if (err) return reject(err);

try {
const blockLimiter = new RateLimiterMySQL({
storeClient: pool,
tableName: "block",
tablePrefix: "rate_limit_",
points: 20,
duration: 60,
blockDuration: 60 * 60 * 24,
storeType: "mysql",
});

resolve({ blockLimiter });
} catch (error) {
reject(error);
}
});
});
};
< /code>
Я получаю следующую ошибку: < /p>
Error: connect ETIMEDOUT
at PoolConnection._handleTimeoutError (node_modules/mysql2/lib/connection.js:205:17)
at listOnTimeout (node:internal/timers:581:17)
at process.processTimers (node:internal/timers:519:7)
< /code>
Дополнительный контекст
хост, порт, пользователь, пароль и база данных идентичны как между последовательностями, так и между конфигурациями MySQL2. Метрики). < /p>
Те же учетные данные работают в MySQL Workbench и Scentize без проблем. < /p>
Я также попытался увеличить подключение к конфигурации MySQL2 без успеха. < /p>  pectipiz MySQL2 (через платеж-платежом) Time Out? /> < /li>
  Что я могу сделать, чтобы отладить это и определить, находится ли проблема на стороне цифрового океана или с тем, как я инициализации бассейна? Я застрял в этом часами и хотел бы услышать от любого, кто использовал тариф-лимитер-плавно 
с управляемой базой данных MySQL, такой как цифровой океан.
Заранее!

Подробнее здесь: https://stackoverflow.com/questions/795 ... nects-fine
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»