0

実行しようとしている次のコードがあります。私が試したことすべてに言及するために、それに応じてコメントを与えました。

// File saved as app.js
var mysql = require('mysql');
var connection = mysql.createConnection({
    host:'localhost',    //even tried with 127.0.0.1
    port:3306,           //confirmed port by looking into /etc/mysql/my.cnf has [client] port = 3306
    user:'root',         //credentials are verified since Php My Admin logs in with same
    password:'password' //credentials are verified since Php My Admin logs in with same
    //Even tried to connect using _socket: '/var/run/mysqld/mysqld.sock'
});

connection.connect(function(err) {
  // connected! (unless `err` is set)
  if(err)
    console.log(err); return;
});

デフォルトのポートは変更されていないため、phpMyAdmin は問題なく動作しています。しかし、 Node.jsからnode-mysql ドライバーを使用して接続できません。

以下は私が得ているエラーメッセージです:

amolkulkarni@ubuntu:~/Project/Node_MySQL$ node app.js
{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect',
  fatal: true }

誰でもこれについて助けてもらえますか?


更新:コメントに基づく

 amolkulkarni@ubuntu:~/ ps ax | grep mysqld
 5905 ?        S      0:00 sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
 5906 ?        Sl     0:12 /usr/sbin/mysqld --skip-grant-tables --skip-networking
 28964 ?        Ssl    0:00 /usr/sbin/mysqld
 29098 pts/3    S+     0:00 grep --color=auto mysqld

を使用して mysql に接続できますが、mysql -hlocalhost -uroot -ppasswordたとえば ip に置き換えるとmysql -h192.168.1.10 -uroot -ppassword、次のようなエラーが発生します。

エラー 2003 (HY000): '192.168.3.78' (111) で MySQL サーバーに接続できません

4

1 に答える 1

3

サーバーは--skip-networkingフラグで起動されます:

TCP/IP 接続をまったくリッスンしません。mysqld とのやり取りはすべて、名前付きパイプまたは共有メモリ (Windows の場合) または Unix ソケット ファイル (Unix の場合) を使用して行う必要があります。このオプションは、ローカル クライアントのみが許可されているシステムに強くお勧めします。

Unix ソケットに接続するか、TCP を有効にしてサーバーを起動してみてください。

于 2013-09-15T08:38:13.093 に答える