2017-06-23 1 views
0

Je reçois l'erreur SequelizeConnectionError: connect ETIMEDOUT lorsque j'essaie de me connecter à un serveur mysql distant avec sequelize.Sequelize Connexion ETIMEOUT lors de la connexion à la commande distante mysql db

La connexion peut être établie avec succès lorsque j'essaie de me connecter à mon mysql db local.

J'utilise le code de connexion par défaut de sequelize db new Sequelize(...) contenu dans les modèles/index.js, avec la configuration suivante (remplie avec les valeurs correctes):

"production": { 
    "username": "root", 
    "password": null, 
    "database": "database_production", 
    "host": "127.0.0.1", 
    "dialect": "mysql" 
} 

J'ai essayé de se connecter à la DB à distance avec un script PHP simple et cela a fonctionné (ainsi nous pouvons exclure des problèmes du côté du serveur à distance db)

Des idées?

+0

Vous avez dit que votre système de production est un système distant, mais votre hôte ci-dessus est 127.0.0.1. Qu'est-ce qui se passe avec ça? –

Répondre

0

Il pourrait y avoir deux raisons à cela, énumérant quelques-unes que je l'ai fait face,

  • accès root à distance non fournie par le serveur mysql.
  • Les configs sont filtrés par l'environnement, ce qui est idéalement fait en utilisant la variable NODE_ENV, pouvez-vous essayer d'exécuter votre serveur localement avec prod config. Dans mon cas, je ferais quelque chose comme NODE_ENV=production node server.js. En supposant que server.js est le fichier de démarrage. Vous pouvez essayer d'enregistrer les valeurs avant new Sequelize(...), ce qui pourrait donner une meilleure idée de ce qui se passe.
+0

Enfin compris que le serveur mysql distant n'a pas été configuré pour accepter les connexions entrantes de l'extérieur de son réseau! – artze