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”上的 MySQL 服务器 (111)

4

1 回答 1

3

您的服务器以--skip-networking标志启动:

根本不监听 TCP/IP 连接。与 mysqld 的所有交互都必须使用命名管道或共享内存(在 Windows 上)或 Unix 套接字文件(在 Unix 上)。对于只允许本地客户端的系统,强烈建议使用此选项。

尝试连接到 unix 套接字或启动启用 TCP 的服务器。

于 2013-09-15T08:38:13.093 回答