Mysql 通过EB连接到具有EC2实例的RDS端点的问题
我的Elasticbeantalk环境有问题,EC2实例不允许连接到我的RDS实例。我似乎无法确定原因,因为我将RDS安全组配置为允许任何IP的MYSQL连接,并且在我的EC2实例安全组中具有相同的入站规则。我使用Mysql 通过EB连接到具有EC2实例的RDS端点的问题,mysql,amazon-web-services,amazon-ec2,sequelize.js,rds,Mysql,Amazon Web Services,Amazon Ec2,Sequelize.js,Rds,我的Elasticbeantalk环境有问题,EC2实例不允许连接到我的RDS实例。我似乎无法确定原因,因为我将RDS安全组配置为允许任何IP的MYSQL连接,并且在我的EC2实例安全组中具有相同的入站规则。我使用nc-zv test-db.cffvlzfsdafasf6x7kir.us-east-2.rds.amazonaws.com 3306和I连接到。。。成功了作为响应,表示RDS实例上的安全组没有问题,但在我的EC2实例日志中,我有未处理的拒绝SequelizeConnectionRef
nc-zv test-db.cffvlzfsdafasf6x7kir.us-east-2.rds.amazonaws.com 3306和I连接到。。。成功了
作为响应,表示RDS实例上的安全组没有问题,但在我的EC2实例日志中,我有未处理的拒绝SequelizeConnectionRefusedError:connect EconRefused 127.0.0.1:3306
这是我通过Sequelize的连接,我检查了我的环境变量的用户名和密码,我确认它们是正确的:
var Sequelize = require('sequelize');
var path = require('path');
var sequelize = new Sequelize(process.env.LOCAL_DATABASE, process.env.RDS_DATABASE || process.env.LOCAL_USERNAME, process.env.RDS_USERNAME || process.env.LOCAL_PASSWORD, process.env.RDS_PASSWORD, {
host: process.env.RDS_HOSTNAME || 'localhost',
port: process.env.RDS_PORT || '3306',
dialect: 'mysql'
});
对我应该执行的检查表或我可能出错的地方有什么建议吗?这部分完全错了:
var sequelize = new Sequelize(process.env.LOCAL_DATABASE, process.env.RDS_DATABASE || process.env.LOCAL_USERNAME, process.env.RDS_USERNAME || process.env.LOCAL_PASSWORD, process.env.RDS_PASSWORD, {
host: process.env.RDS_HOSTNAME || 'localhost',
port: process.env.RDS_PORT || '3306',
dialect: 'mysql'
});
你设法把一个|
放在你需要放的地方,
和一个,
放在你应该放|
的地方。试试这个:
var sequelize = new Sequelize(process.env.LOCAL_DATABASE || process.env.RDS_DATABASE,
process.env.LOCAL_USERNAME || process.env.RDS_USERNAME,
process.env.LOCAL_PASSWORD || process.env.RDS_PASSWORD, {
host: process.env.RDS_HOSTNAME || 'localhost',
port: process.env.RDS_PORT || '3306',
dialect: 'mysql'
});
您的RDS_主机名应该是test-db.cffvlzfsdafasf6x7kir.us-east-2.RDS.amazonaws.com,而不是本地hostright,但是它是否可以选择使用process.env.RDS|u HOSTNAME
,因为它存在于我的EC2实例中,并且在|
之前被引用?如果你想连接到RDS,为什么要使用| |语句?我在我的EC2实例中设置了一个env变量,所以这是用于生产的,但我留下了“localhost”,因为我想在运行本地测试时使用该数据库。我没有在本地应用程序repo中设置env变量。这会有所不同吗?我不确定,但您的EC2正在尝试连接到本地数据库,而不是RDS。感谢您发现我最大的问题。更改后没有任何问题。