2017-12-21 3 views
2

Ich erhalte derzeit eine SequelizeConnectionError: Schlechter Handshake Fehler, auf der 5. Anfrage, die meine MySQL-Datenbank abfragt. Konsequent scheitert auf der 5. Anfrage, die ich mit dem Server mache.SequelizeConnectionError: Schlechter Handshake

Ich benutze nodejs. Der Code, der die Post-Anforderung ist der Umgang ist wie folgt:

routes.post('/login', (req, res) => { 
    var email = req.body.email, 
     password = req.body.password; 

    models.User.findOne({ where: {email : email} }).then(function(user) { 
     if(user){ 
      user.validPassword(password).then(result => { 
       if(result){ 
        res.json({ "result": "Password correct"}); 
       } else { 
        res.json({ "result": "Password incorrect"}); 
       }    
      }); 
     } else { 
      res.json({ "result": "User not found."}); 
     } 
    }); 
}); 

Die user.validPassword ist wie folgt:

User.prototype.validPassword = function(password){ 
     var self = this; 

     return new Promise(function(resolve, reject){ 
      cryptPassword(password, function(err, encrypted) { 
       resolve(self.password === encrypted); 
      }); 
     }); 
    } 

Und die Config für meine Sequelize ist wie folgt:

var sequelize = new Sequelize(config.database, config.username, config.password, { 
    host: config.host, 
    dialect: config.dialect, 
    pool: { 
    max: 100, 
    min: 0, 
    idle: 10000, 
    handleDisconnects: true 
    } 
}); 

Ich habe versucht, die Pools zu entfernen, die Beträge zu erhöhen, überprüft, dass es keine Verbindungsbeschränkung für MySQL gibt, habe sichergestellt, dass keine Zertifikate erforderlich sind, und meinen MySQL-Server neu installiert.

Der MySQL-Server läuft auf einem Ubuntu 14.04 VPS, nicht gehostet mit Azure, da einige der vorherigen Fragen auf Basis von.

+0

Was ist Sequelize-Version, die Sie verwenden? – Jehy

+0

Ich benutze 4.28.6 – thezadmin

+0

Und ist Ihr Server wirklich MySQL? Kann Mariadb sein? Welchen Dialekt verwenden Sie zum Selqualisieren? – Jehy

Antwort

0

Dies erwies sich als ein Problem mit dem Paket mysql2. Ich musste es entfernen und stattdessen das mysql-Paket verwenden.

Hoffentlich kann dies jemand anderen helfen, wenn sie auf den gleichen Fehler stoßen.