【问题标题】:How to connect Node Sequelize to Amazon RDS MySQL with Multi-AZ probably如何使用 Multi-AZ 将 Node Sequelize 连接到 Amazon RDS MySQL
【发布时间】:2017-04-14 15:41:42
【问题描述】:

我正在使用支持多可用区的 Amazon RDS 托管 MySQL。只是找不到有关如何将 Sequelize 正确连接到 Amazon RDS 以便 Sequelize 相应地处理故障转移等的任何信息?

我只是使用下面的配置,但不知道这样是否足够或推荐?

sequelizeConfig = {
  logging: false,
  pool: { maxConnections: 5, maxIdleTime: 30},
  sequelizeConfig[dialectOptions] = {
    ssl: 'Amazon RDS'
  }
}

将 Amazon RDS 与多可用区结合使用我认为以下几点很重要:

  1. 如果连接丢失,请尝试重新连接,直到它再次可用
  2. 不要缓存mysql服务器ip地址太长(亚马逊建议不到1分钟)

Amazon Docs 没有写任何关于连接处理和池的内容。

【问题讨论】:

  • 您是否让 Node Sequelize.js 与 Amazon RDS MySQL 一起使用?
  • 是的,但只是续集,而不是带有迁移的 sequelize-cli。只需通过环境变量使用常规 SQL 设置以及 aws 文档中描述的上述设置
  • 我明白了。真可惜。我们启动了一个 EC2 实例并通过安全组连接 RDS。

标签: mysql node.js amazon-web-services sequelize.js amazon-rds


【解决方案1】:

之前的答案对我不起作用,经过一番研究,这个选项对象确实有效:

var options = {
  host: settings.database.host,
  port: settings.database.port,
  logging: console.log,
  maxConcurrentQueries: 100,
  dialect: 'mysql',
  ssl: 'Amazon RDS',
  pool: { maxConnections: 5, maxIdleTime: 30 },
  language: 'en',
}

我在同一个默认 VPC 中运行 RDS MySQL 和 EC2 实例,当使用 sequelize 将来自该 EC2 的节点应用程序与 RDS 连接时,此选项对象有效。

【讨论】:

【解决方案2】:

这是我与我的 RDS 建立联系的方式:

 var config = require(__dirname + '/../config/config.json')[env];
 // your config file will be in your directory
 var sequelize = new Sequelize(config.database, config.username, config.password, {
    host: '****.****.us-west-1.rds.amazonaws.com',
    port: 5432,
    logging: console.log,
    maxConcurrentQueries: 100,
    dialect: 'postgres',
    dialectOptions: {
        ssl:'Amazon RDS'
    },
    pool: { maxConnections: 5, maxIdleTime: 30},
    language: 'en'
})

【讨论】:

  • 您能否提供一个额外的 iam 身份验证示例?
  • 感谢您的快速回复!
  • 你在 ssl 中放了什么?只是字符串 Amazon RDS??
  • 是的,我相信。我是一年前做的。
  • 为我工作,但我使用 dialect: 'mysql' 而不是 postgres
猜你喜欢
  • 2021-10-16
  • 2016-08-04
  • 2015-04-10
  • 2019-02-27
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 2014-02-17
  • 2018-05-04
相关资源
最近更新 更多