28

Sequelize インスタンスを作成し、mysql データベースで生のクエリを実行する非常に単純なプログラムがあります。MySql が起動して実行されている場合、問題はなく、問題なくクエリを実行できます。しかし、MySql が実行されていない場合、クエリはタイムアウトに達するまでエラーを発行せず、その後 ETIMEOUT エラーを発行します。しかし、それは実際に起こっていることではありません。mysql が実行されていない場合、クエリが ENOTFOUND エラーまたはそのようなエラーを生成することを期待しているため、Mysql がダウンした場合、または Mysql が非常にビジーで応答時間が非常に長い場合に、エラーを管理してさまざまなアクションを実行できます。タイムアウト例外を待たずにMysqlが稼働しているかどうかを確認するにはどうすればよいですか。

sequelize = new Sequelize(db_name, db_user, db_pass, opts);

sequelize.query('SELECT * FROM some_table').success(function(result) {
  console.log(result);
}).error(function(err) {
  console.log(err);
});
4

4 に答える 4

7

では、パスワード認証エラーなどのエラーは表示されません.then

ここの続編のドキュメントから:

このような .authenticate() 関数を使用して、接続をテストできます。

sequelize
  .authenticate()
  .then(function(err) {
    console.log('Connection has been established successfully.');
  })
  .catch(function (err) {
    console.log('Unable to connect to the database:', err);
  });
于 2017-04-14T17:43:46.343 に答える
0

些細な値にリセットされている場合は、「wait_timeout」システム変数を確認してください

于 2014-02-13T06:19:19.187 に答える