web-dev-qa-db-ja.com

Node.js MySQL-エラー:接続ECONNREFUSED

Node.jsサーバー側を使用します。ローカルホストでコードを試してみましたが、すべて正常に動作します。サーバーを購入し、Apacheとnode.jsをインストールして、そこでWebアプリケーションをテストしました。 MySQL接続構成をlocalhostからサーバー構成に正しく変更しました。

この構成でWebアプリケーションをテストします。

var mysql      = require('mysql');
var mysqlConnection;
function new_mysqlConnection() {
    mysqlConnection = mysql.createConnection({
      Host     : 'myurl.at',
      user     : 'myusername',
      database : 'mydatabase',
      password : 'mypassword'
    });
}

Node.jsサーバーを以下で起動します:

$ node server.js

ページをロードすると正しく表示されますが、Node.jsがデータベースに接続しようとすると、常に次のエラーが発生しました。

Error: connect ECONNREFUSED
    at errnoException (net.js:905:11)
    at Object.afterConnect [as oncomplete] (net.js:896:19)
    --------------------
    at Protocol._enqueue (/var/www/node_modules/mysql/lib/protocol/Protocol.js:135:48)
    at Protocol.handshake (/var/www/node_modules/mysql/lib/protocol/Protocol.js:52:41)
    at Connection.connect (/var/www/node_modules/mysql/lib/Connection.js:119:18)
    at reconnectDb (/var/www/server.js:319:18)
    at app.get.email (/var/www/server.js:109:2)
    at Layer.handle [as handle_request] (/var/www/node_modules/express/lib/router/layer.js:82:5)
    at trim_prefix (/var/www/node_modules/express/lib/router/index.js:302:13)
    at /var/www/node_modules/express/lib/router/index.js:270:7
    at Function.proto.process_params (/var/www/node_modules/express/lib/router/index.js:321:12)
    at next (/var/www/node_modules/express/lib/router/index.js:261:10)
16
Nico

socket pathの値を構成オブジェクトに追加する必要があります。

socketPath: '/var/run/mysqld/mysqld.sock'

MAMPで http:// localhost:8888/MAMP にアクセスすると、次のことがわかります。

/Applications/MAMP/tmp/mysql/mysql.sock

最後に次のものがあります:

var connection = mysql.createConnection({
  Host     : config.Host,
  user     : config.user,
  password : config.pass,
  database : config.db,
  socketPath: '/Applications/MAMP/tmp/mysql/mysql.sock'
});
31
tdebroc

サーバーのMySQLポートを確認します。

MAMPでは、デフォルトで8889を使用します。

それを接続設定に追加します。

MySQL設定は次のようになります。

this.pool = mysql.createPool({
  connectionLimit: 10,
  Host: 'localhost',
  user: 'root',
  password: 'root',
  database: 'todo',
  port: '8889'
});
16
harishannam

Mysqlが実行されているかどうか、xamppサーバーを確認してください

1
Kalpit tandon

私は同じ問題を抱えていましたが、変更してこれを解決しました

Host:  'localhost'

Host:   '127.0.0.1'
1
shrikantbishoye

私もnginxでGoogleクラウドで同じ問題を抱えています

かわった

 Host: 'localhost'

Host : 'cloud_instance_private_ip'

同じ問題を持つ人を助けるかもしれません

0
CLIFFORD P Y

私も同じ問題を抱えていますが、次を追加して解決策を見つけました:port:"80" I connect with node.js to the server php mysql using this code: var mysql = require( 'mysql'); `

var connection=mysql.createConnection({
   port:"80",
    Host:"localhost",
    user:"root",
    password:""
});
0
salah

おそらく、ポートとデータベースがないためです。最初に書いたのは、ホスト、ユーザー、パスワード、およびデータベースとポートなしです。

ここで、データベース名、ポート番号を指定する必要があります。したがって、合計は次のようになります。1.ホスト2.ユーザー3.パスワード4.データベース5.ポート

それは私にとってはうまくいきます。あなたにとってもうまくいくなら試してみてください。

0
doeun kol