我正在使用Sequelize连接到MariaDB数据库的Node.js项目。在我的本地环境中,连接工作正常,但当我尝试连接到托管在AWS RDS上的MariaDB数据库时,它失败了。
我已经验证了AWS RDS连接可以使用MySQL MySQL进行工作,但是我的Node.js项目抛出了以下错误:
无法连接到数据库:SequelizeConnectionError:(conn=1690,no:45012,SQLState:08S01)连接超时:1001ms后创建套接字失败
我试着看起来像这样:
const dbConfig = require('../config/dbConfig');
const { Sequelize, DataTypes } = require('sequelize');
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
host: dbConfig.HOST,
port: dbConfig.PORT,
dialect: "mariadb",
operatorsAliases: 0,
define: {
freezeTableName: true // it's default behavior is to modified table name automatic, so we restrict it with this param
},
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
});
sequelize.authenticate()
.then(() => {
console.log('DB Connected...');
})
.catch((error) => {
console.error(`Unable to connect to the database: ${error}`);
})
字符串
1条答案
按热度按时间798qvoo81#
您的RDS示例是否可公开访问?
1.您可以通过前往连接和安全进行检查,如果公共访问设置为否,则无法从公共工作区(仅在VPC内)访问示例。x1c 0d1x
要启用公共访问,您可以在【修改】中,在【连接】下,选择【附加配置】,将公共访问设置为“可公开访问”。另外,当被询问时,请立即更改,而不是在下一个计划中更改-您需要等待一两分钟,直到修改完成后才能访问示例。
1.在Connectivity选项卡下,检查底层EC2示例是否可访问-转到RDS示例的安全组。
1.在安全组入站规则中,添加MySQL/Aurora端口和My IP作为Source。
1.确保您已经创建了一个数据库(因为默认情况下没有)。如果您没有提供
null
作为dbConfig.DB值:字符串
您应该能够看到以下消息:
型