【问题标题】:How to connect to MySQL using node.js (with node-mysql driver)?如何使用 node.js(使用 node-mysql 驱动程序)连接到 MySQL?
【发布时间】:2013-09-17 22:18:20
【问题描述】:

我有以下代码,我正在尝试运行。我已经相应地给了 cmets 提及我所尝试的所有内容。

// 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.jsnode-mysql driver 进行连接。

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

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

有人可以帮忙吗?


更新:基于 cmets
 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 报错如下:

错误 2003 (HY000):无法连接到“192.168.3.78”上的 MySQL 服务器 (111)

【问题讨论】:

  • 我已经看过这个Question。我没有得到答案及其不同的问题..
  • 你可以使用命令行客户端连接吗?在你的情况下,mysql -h 127.0.0.1 -u root -ppassword?
  • @AndreySidorov 感谢您的宝贵时间。它的抛出错误ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
  • 没有“-h”键可以连接吗?另外,“ps ax | grep mysqld”的输出是什么?
  • @AndreySidorov 现在,我可以使用mysql -hlocalhost -uroot -ppassword 进行连接。并更新了我的问题。

标签: mysql node.js node-mysql


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    • 2012-06-21
    • 2014-11-26
    • 2021-05-18
    相关资源
    最近更新 更多