如何使用node.js(使用node-mysql驱动程序)连接到MySQL?

时间:2013-09-13 09:22:55

标签: mysql node.js node-mysql

我有以下代码,我正在尝试运行。我已经相应地发表评论,提到我所做的一切。

// 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-mysql driver中的Node.js进行连接。

以下是我收到的错误消息:

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 -hlocalhost -uroot -ppassword连接到mysql,但如果我用ip替换,例如mysql -h192.168.1.10 -uroot -ppassword它给出了如下错误:

  

ERROR 2003(HY000):无法连接到'192.168.3.78'上的MySQL服务器(111)

1 个答案:

答案 0 :(得分:2)

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

  

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

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