连接 ECONNREFUSED - 节点 js , sql
Posted
技术标签:
【中文标题】连接 ECONNREFUSED - 节点 js , sql【英文标题】:connect ECONNREFUSED - node js , sql 【发布时间】:2012-02-08 04:00:52 【问题描述】:我在 js 文件中有下一段代码:
var mysql = require('mysql');
var TEST_DATABASE = 'nodejs_mysql_test';
var TEST_TABLE = 'test';
var client = mysql.createClient(
user: 'root',
password: 'root',
);
client.query('CREATE DATABASE '+TEST_DATABASE, function(err)
if (err && err.number != mysql.ERROR_DB_CREATE_EXISTS)
throw err;
);
但我收到此错误:
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: connect ECONNREFUSED
at errnoException (net.js:632:11)
at Object.afterConnect [as oncomplete] (net.js:623:18)
据我了解,这是一个连接问题 - 但我该如何解决呢?
(我正在使用 Windows 7)
谢谢!!
【问题讨论】:
似乎出于某种原因页面认为数据库已启动并正在运行。它在本地主机上启动并运行,对吧? 显而易见的问题:mysql 是否在同一台机器上运行,在端口 3306 上?你能telnet localhost 3306
吗?
当我在 CMD 中写入 telnet localhost 3306 行时,我得到:'telnet' 不被识别为内部或外部命令、可运行程序或批处理文件。是这个意思吗?
@user1087995:seppo0010 的意思是,根据您使用的连接设置,您是否绝对确定在本地计算机上运行 MySQL 服务器并在端口 3306 上进行侦听?此错误表明您正在尝试连接到未侦听的服务器。
即使它在本地机器上运行,您也需要确保 MySQL 正在侦听 localhost/127.0.0.1 而不仅仅是外部 IP。
【参考方案1】:
尝试修复您在 mysql 和 Node.js 脚本中定义的端口。 你可以在mysql目录下的*.cnf文件中定义mysqld端口, 当您在 Node.js 脚本中连接到 MySQL 时,您可以定义该端口。
cnf 文件中有这样的东西
port = 3360
【讨论】:
【参考方案2】:MySQL 服务器未运行时出现此错误。
我通过 MySQL.PrefPane 中的 Initialize Database(OS X 上 MySQL 的系统偏好设置工具)更改了我的配置 - 以使用旧密码加密 - 以修复 ER_NOT_SUPPORTED_AUTH_MODE。 此配置更改停止了 MySQL 服务器,然后当我尝试从 node.js 连接到 MySQL 时,我得到了 ECONNREFUSED。
已通过从 MySQL 系统偏好设置工具重新启动 MySQL 服务器修复。
【讨论】:
【参考方案3】:我知道两种解决方法:
在mysql.conf
,评论skip-networking
。
尝试这样设置套接字:
var client = mysql.createClient(
user: uuuu,
password: pppp,
host: '127.0.0.1',
port: '3306',
_socket: '/var/run/mysqld/mysqld.sock',);
【讨论】:
谢谢,评论skip-networking对我有用,但关键没有,这很奇怪。在生产中,我宁愿不评论该选项! 这是被匿名用户拒绝的编辑:我遇到了同样的问题,所以我只是插入了我解决问题的方法。确保在 mysql 配置文件(/etc/mysql/ my.cnf
或 mysql.conf
)中有正确的绑定地址。下面是一个例子,说明在这种情况下应该写什么:bind-address = 127.0.0.1
我不知道为什么,但只有这对我有用:***.com/a/20486467/2413469
在 2.1.0 版本中,您应该使用 socketPath
而不是 _socket
以上是关于连接 ECONNREFUSED - 节点 js , sql的主要内容,如果未能解决你的问题,请参考以下文章
Node.js MySQL - 错误:连接 ECONNREFUSED
node.js 错误:连接 ECONNREFUSED;来自服务器的响应
Heroku + MongoLab 插件与 Node.js 应用程序的连接错误 - 错误:连接 ECONNREFUSED 127.0.0.1:27017