简体   繁体   English

Sequelize - 错误:getaddrinfo ENOTFOUND(在一个完美的地址上)

[英]Sequelize - Error: getaddrinfo ENOTFOUND (on a perfectly fine adress)

I'm trying to put in production a site I made with Angular and Express/Sequelize , but always have Sequelize errors :我正在尝试将我用AngularExpress/Sequelize制作的网站投入生产,但总是有 Sequelize 错误:

  • It works perfectly fine in local with WAMP, I can reach my local database and it's all good.它在本地使用 WAMP 运行得非常好,我可以访问我的本地数据库,一切都很好。
  • When I'm trying to use my OVH database (that I got with my hosting plan), I have the following errors :当我尝试使用我的 OVH 数据库(通过我的托管计划获得)时,出现以下错误:
HostNotFoundError [SequelizeHostNotFoundError]: getaddrinfo ENOTFOUND dodobwtdodob.mysql.db
    at ConnectionManager.connect (C:\Users\Dorian\Desktop\Développement Web\Mes sites\capitales\server\node_modules\sequelize\lib\dialects\mysql\connection-manager.js:120:17)
    at processTicksAndRejections (node:internal/process/task_queues:94:5)
    at async ConnectionManager._connect (C:\Users\Dorian\Desktop\Développement Web\Mes sites\capitales\server\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:318:24)
    at async C:\Users\Dorian\Desktop\Développement Web\Mes sites\capitales\server\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:250:32
    at async ConnectionManager.getConnection (C:\Users\Dorian\Desktop\Développement Web\Mes sites\capitales\server\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:280:7)
    at async C:\Users\Dorian\Desktop\Développement Web\Mes sites\capitales\server\node_modules\sequelize\lib\sequelize.js:613:26        
    at async MySQLQueryInterface.createTable (C:\Users\Dorian\Desktop\Développement Web\Mes sites\capitales\server\node_modules\sequelize\lib\dialects\abstract\query-interface.js:225:12)
    at async Function.sync (C:\Users\Dorian\Desktop\Développement Web\Mes sites\capitales\server\node_modules\sequelize\lib\model.js:1300:5)
    at async Sequelize.sync (C:\Users\Dorian\Desktop\Développement Web\Mes sites\capitales\server\node_modules\sequelize\lib\sequelize.js:793:35) {
  parent: Error: getaddrinfo ENOTFOUND dodobwtdodob.mysql.db
      at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:69:26) {
    errno: -3008,
    code: 'ENOTFOUND',
    syscall: 'getaddrinfo',
    hostname: 'dodobwtdodob.mysql.db',
    fatal: true
  },
  original: Error: getaddrinfo ENOTFOUND dodobwtdodob.mysql.db
      at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:69:26) {
    errno: -3008,
    code: 'ENOTFOUND',
    syscall: 'getaddrinfo',
    hostname: 'dodobwtdodob.mysql.db',
    fatal: true
  }
}

I don't understand because I've always used the same config, it works fine when I'm using a PHP PDO object on other projects for example.我不明白,因为我一直使用相同的配置,例如,当我在其他项目上使用 PHP PDO 对象时,它工作正常。 It doesn't work either on my OVH VPS, where I'm getting connection refused error (even if I had to look at all the tutorials on the net), but that's another problem.它在我的 OVH VPS 上也不起作用,在那里我收到连接拒绝错误(即使我不得不查看网上的所有教程),但这是另一个问题。

Here is my db.config.js :这是我的db.config.js

module.exports = {
    HOST: "dodobwtdodob.mysql.db",
    USER: "dodobwtdodob",
    PASSWORD: "secretpassword",
    DB: "dodobwtdodob",
    dialect: "mysql",
    pool: {
      max: 5,
      min: 0,
      acquire: 30000,
      idle: 10000
    },
    port:3306
  };

And here a part of my index.js :这里是我的index.js的一部分:

const dbConfig = require("../config/db.config.js");

const Sequelize = require("sequelize");
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
  host: dbConfig.HOST,
  dialect: dbConfig.dialect,
  port: dbConfig.port,
  pool: {
    max: dbConfig.pool.max,
    min: dbConfig.pool.min,
    acquire: dbConfig.pool.acquire,
    idle: dbConfig.pool.idle
  }
});

请将主机名“dodobwtdodob.mysql.db”更改为ipAddress(主机地址)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM