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)
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'
});
サーバーのMySQLポートを確認します。
MAMPでは、デフォルトで8889を使用します。
それを接続設定に追加します。
MySQL設定は次のようになります。
this.pool = mysql.createPool({
connectionLimit: 10,
Host: 'localhost',
user: 'root',
password: 'root',
database: 'todo',
port: '8889'
});
Mysqlが実行されているかどうか、xamppサーバーを確認してください
私は同じ問題を抱えていましたが、変更してこれを解決しました
Host: 'localhost'
に
Host: '127.0.0.1'
私もnginxでGoogleクラウドで同じ問題を抱えています
かわった
Host: 'localhost'
に
Host : 'cloud_instance_private_ip'
同じ問題を持つ人を助けるかもしれません
私も同じ問題を抱えていますが、次を追加して解決策を見つけました: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:""
});
おそらく、ポートとデータベースがないためです。最初に書いたのは、ホスト、ユーザー、パスワード、およびデータベースとポートなしです。
ここで、データベース名、ポート番号を指定する必要があります。したがって、合計は次のようになります。1.ホスト2.ユーザー3.パスワード4.データベース5.ポート
それは私にとってはうまくいきます。あなたにとってもうまくいくなら試してみてください。