1. ホーム
  2. データベース

node.jsサーバーのmysqlデータベース接続タイムアウト問題(Error: connect ETIMEDOUT)

2022-02-27 04:39:33
<パス

node.jsサーバーのmysqlデータベース接続タイムアウト

ノードサーバでデータベースに接続する際、接続がタイムアウトすることがあり、このようなエラーが発生します。 エラー: 接続 ETIMEDOUT . コード内のエラー箇所は、mysql connection.js ファイルの 421 行目から 433 行目です。

Connection.prototype._handleConnectTimeout = function() {
  if (this._socket) {
    this._socket.setTimeout(0);
    this._socket.destroy();
  }

  var err = new Error('connect ETIMEDOUT');
  err.errorno = 'ETIMEDOUT';
  err.code = 'ETIMEDOUT';
  err.syscall = 'connect';

  this._handleNetworkError(err);
};

このエラーは文字通り接続タイムアウトで、それから私の方のエラーは接続先のデータベースに問題があるためで、私のようにデータベースを作成する際にパラメータをよく比較して問題がないかを確認します。
データベースのコネクションプールを作成する場合。

pool = mysql.createPool({  
        host: "127.0.0.1",
        user: "user",
        password: "",
        database: "nodejs",
        port: 3306,
    });

そして、データベースのテーブルヘッダの情報は

Source Server : localhost
Source Server Version : 50624
Source Host : localhost:3306
Source Database : nodejs

Target Server Type : MYSQL
Target Server Version : 50624
File Encoding : 65001

サーバーの接続アドレスに問題があったため、localhostに変更したところ、接続に成功したことがわかります