2017-12-21 15 views
2

私は現在、SequelizeConnectionErrorを受け取りました:私のMySQLデータベースを照会する5番目のリクエストで、不正なハンドシェイクエラーが発生しました。私がサーバーにやっている5回目のリクエストで一貫して失敗します。SequelizeConnectionError:ハンドシェイクが正しくありません

nodejsを使用しています。

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

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

そして、次のように私のSequelizeための設定は次のとおりです:次のように

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."}); 
     } 
    }); 
}); 

user.validPasswordは次のようにPOSTリクエストを処理しているコードがある

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 
    } 
}); 

私はプールを削除しようとしましたが、金額を増やし、MySQLに接続制限がないことを確認し、証明書が必要でないことを確認し、MySQLサーバを再インストールしました。

MySQLサーバはUbuntu 14.04 VPSで動作していますが、Azureでホストされていないものもあります。

+0

使用しているsequelizeのバージョンは何ですか? – Jehy

+0

私は4.28.6を使用しています – thezadmin

+0

あなたのサーバーは本当にMySQLですか? mariadbかもしれない?あなたはどのような方言を使用して連続化しますか? – Jehy

答えて

0

これはmysql2パッケージの問題であることが判明しました。私はそれを削除し、代わりにmysqlパッケージを使用しなければなりませんでした。

これは、同じエラーが発生した場合に、他の人に助けてくれることを願っています。

関連する問題