Node.js MySQL: 接続時の「ECONNREFUSED」エラーの解決
Node.js 経由で MySQL サーバーに接続しようとすると、 「ECONNREFUSED」エラーが発生すると、特に PHP/Apache サーバーが同じ上にある場合、混乱する可能性があります。マシンは問題なく動作します。
このエラーの原因を調査し、成功した解決策を提供しましょう。
課題
提供されたコード スニペットでは、MySQL ホストは「localhost」として定義されており、マシン上の MySQL サーバーは Unix ソケットでリッスンします。標準の TCP ポートではなく、「/var/run/mysqld/mysqld.sock」。この不一致により、Node.js アプリケーションが TCP を使用して接続しようとすると「ECONNREFused」エラーが発生します。
解決策
この問題を解決するには、次の変更を行う必要があります。 TCP ポートの代わりに Unix ソケット パスを指定する接続オプション。これは、接続オプションに次の行を追加することで実現できます:
port: '/var/run/mysqld/mysqld.sock'
Updated Code
var mysql_link = { host: 'localhost', port: '/var/run/mysqld/mysqld.sock', // Modified to specify Unix socket path. database: 'nodetest', user: 'root', password: 'xxx' };
結論
正しい接続オプションを指定することで、Node.js アプリケーションが確実に正常な接続を確立できるようになります。 MySQL サーバーに移行し、その運用をシームレスに継続します。今後このようなエラーが発生しないようにするには、MySQL サーバーの構成を確認し、適切な接続パラメーターを使用することが重要です。
以上がNode.js MySQL ECONNREFused エラー: Unix ソケットを使用して接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。