node.js - Sequelize 不从 .env 文件中获取主机名并默认为机器的 IP 地址

标签 node.js sequelize.js sequelize-cli

我的 sequelize config.js 如下所示。

const dotenv = require('dotenv');

dotenv.config();

module.exports = {
  development: {
    username: process.env.DB_USERNAME,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_DATABASE,
    host: process.env.DB_HOST,
    dialect: 'mysql'
  },
  test: {
    username: process.env.DB_USERNAME,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_DATABASE,
    host: process.env.DB_HOST,
    dialect: 'mysql'
  },
  production: {
    username: process.env.DB_USERNAME,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_DATABASE,
    host: process.env.DB_HOST,
    dialect: 'mysql'
  }
}

我定义 .env 文件如下:
DB_USERNAME=mysqldev
DB_PASSWORD=password
DB_DATABASE=mydatabase
DB_HOST=hostname.on.aws.com

当我在本地机器上运行 sequelize-cli db:migrate 命令时,它可以工作(我将 DB_HOST 设置为 127.0.0.1)。
但是当我在 AWS 上的开发服务器上运行时,出现以下错误。
CREATE command denied to user 'mysqldev'@'<aws ip address>' for table 'SequelizeMeta'

如果我直接在配置文件中保留主机名而不是使用环境变量事件,那么我会得到同样的错误。
 development: {
    username: process.env.DB_USERNAME,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_DATABASE,
    host: hostname.on.aws.com,  // <-- this does not work, I get the same error.
    dialect: 'mysql'
  },

所以,它似乎总是在本地服务器上查找数据库,而我的数据库在 AWS 上。
注意:只有 Sequelize 迁移命令不起作用。我的应用程序能够连接到 AWS 上的数据库。

这种配置可能有什么问题?我错过了什么吗?

我正在使用 sequelize 5.19 版和 sequelize-cli 5.5.1 版。

最佳答案

尝试通过连接到数据库(在 AWS 上)来检查用户 (mysqldev) 及其权限。

可能是权限问题。据我说它能够连接到数据库但缺乏权限。

关于node.js - Sequelize 不从 .env 文件中获取主机名并默认为机器的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58131956/

相关文章:

mysql - 何时将 Sequelize 与 MYSQL 一起使用?

javascript - Discord.js 获取消息的 id 并将其删除

javascript - Stripe.js - 无法读取未定义的属性 'stripeToken'

node.js - SequelizeJS,这是使用此模型创建此 JSON 结果的最佳方法吗

mysql - 如何在sequelize中使用mysql的curdate()

postgresql - 未处理的拒绝 SequelizeForeignKeyConstraintError : insert or update on table

node.js - 即使 paranoid 设置为 true,Sequelize.js 仍然删除表行

node.js - Sequelize + Sequelize cli 播种大量随机数据

node.js - 如何在MongoDB中的数组对象中查找包含字符串的集合记录?

javascript - 如何使用 sequelize 修复模型类的未定义问题?