我已尝试以各种可能的方式连接到aws rds,并且在使用sequelize时出现连接被拒绝错误,因此我想知道在进行连接时是否需要设置或包含一个设置。该代码在我的本地计算机上运行,如果我推送到heroku,则需要在该项目中使用aws实例。
我使用了sequelize CLI生成了一个index.js文件,其代码为:
var path = require('path');
var Sequelize = require('sequelize');
var basename = path.basename(__filename);
const config = require(path.join(__dirname,'../config/config.js'));
const db = {};
console.log('config: ',config);
if (config.env === 'production') {
console.log('i ran');
var sequelize = new Sequelize(config.use_env_variable);
} else {
console.log('else ran');
var sequelize = new Sequelize(config.db.database, config.db.username, config.db.password, {
dialect:config.db.dialect});
}
您可以看到config变量正在执行此操作,并且我已确保设置了env变量。我已三重检查以确保用户名和密码正确。我也尝试使用aws提供的端点而不是localhost,但是也失败了。我已经确保更改aws上的安全设置以允许任何IP地址访问它,并且我已经成功地使用mysql工作台进行连接,因此必须有其他特定于续集的内容,或者我使用的代码正确吗?
您的主机设置为“ localhost”,但是应将其设置为您要连接的主机(而不是来自)。在aws rds情况下,它将看起来像这样:
some-rds-names-inserted-here.74389nctj.eu-west-2.rds.amazonaws.com