web-dev-qa-db-fra.com

Node.js MySQL - Erreur: connectez ECONNREFUSED

J'utilise le côté serveur Node.js. J'ai essayé mon code sur localhost et tout fonctionne bien. J'ai acheté un serveur, installé Apache et node.js et testé mon application Web. J'ai correctement changé les configurations de connexion MySQL de localhost aux configurations de serveur. 

Je teste mon application web avec cette configuration:

var mysql      = require('mysql');
var mysqlConnection;
function new_mysqlConnection() {
    mysqlConnection = mysql.createConnection({
      Host     : 'myurl.at',
      user     : 'myusername',
      database : 'mydatabase',
      password : 'mypassword'
    });
}

Je lance le serveur node.js avec: 

$ node server.js

Lorsque je charge la page, elle s’affiche correctement, mais lorsque Node.js essaie de se connecter à la base de données, j’ai toujours l’erreur suivante: 

Error: connect ECONNREFUSED
    at errnoException (net.js:905:11)
    at Object.afterConnect [as oncomplete] (net.js:896:19)
    --------------------
    at Protocol._enqueue (/var/www/node_modules/mysql/lib/protocol/Protocol.js:135:48)
    at Protocol.handshake (/var/www/node_modules/mysql/lib/protocol/Protocol.js:52:41)
    at Connection.connect (/var/www/node_modules/mysql/lib/Connection.js:119:18)
    at reconnectDb (/var/www/server.js:319:18)
    at app.get.email (/var/www/server.js:109:2)
    at Layer.handle [as handle_request] (/var/www/node_modules/express/lib/router/layer.js:82:5)
    at trim_prefix (/var/www/node_modules/express/lib/router/index.js:302:13)
    at /var/www/node_modules/express/lib/router/index.js:270:7
    at Function.proto.process_params (/var/www/node_modules/express/lib/router/index.js:321:12)
    at next (/var/www/node_modules/express/lib/router/index.js:261:10)
12
Nico

Vous devez ajouter la valeur de socket path à l'objet config:

socketPath: '/var/run/mysqld/mysqld.sock'

Dans MAMP, vous allez sur http: // localhost: 8888/MAMP et vous trouverez:

/Applications/MAMP/tmp/mysql/mysql.sock

A la fin vous avez:

var connection = mysql.createConnection({
  Host     : config.Host,
  user     : config.user,
  password : config.pass,
  database : config.db,
  socketPath: '/Applications/MAMP/tmp/mysql/mysql.sock'
});
26
tdebroc

Vérifiez votre port MySQL sur votre serveur.

Dans MAMP, il utilise par défaut 8889.

Ajoutez cela à votre configuration de connexion.

Votre configuration MySQL devrait ressembler à ceci.

this.pool = mysql.createPool({
  connectionLimit: 10,
  Host: 'localhost',
  user: 'root',
  password: 'root',
  database: 'todo',
  port: '8889'
});
11
harishannam

Vérifiez que votre serveur xampp mysql fonctionne ou pas

1
Kalpit tandon

J'avais le même problème mais j'ai résolu cela en changeant 

Host:  'localhost'

à 

Host:   '127.0.0.1'
1
shrikantbishoye

J'ai aussi le même problème dans Google Cloud avec nginx 

modifié 

 Host: 'localhost'

à

Host : 'cloud_instance_private_ip'

peut aider quelqu'un avec le même problème

0
CLIFFORD P Y

J'ai aussi le même problème mais j'ai trouvé la solution en ajoutant: port:"80" I connect with node.js to the server php mysql using this code: var mysql = require ('mysql'); `

var connection=mysql.createConnection({
   port:"80",
    Host:"localhost",
    user:"root",
    password:""
});
0
salah

C'est probablement dû à l'absence de port et de base de données. J'ai d'abord écrit: 

Ici, vous devez spécifier quel est le nom de votre base de données, quel est votre numéro de port. Le total doit donc être: 1. Hôte 2. utilisateur 3. mot de passe 4. base de données 5. Port 

Cela fonctionne pour moi, essayez si cela fonctionne pour vous aussi. 

0
doeun kol