连接ECONNREFUSED - 节点js,sql

时间:2012-01-11 19:22:18

标签: mysql node.js

我在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)

谢谢!

3 个答案:

答案 0 :(得分:18)

我知道解决它的两种方法:

  1. mysql.conf中,评论skip-networking

  2. 尝试像这样设置套接字:

    var client = mysql.createClient({
    user: uuuu,
    password: pppp,
    host: '127.0.0.1',
    port: '3306',
    _socket: '/var/run/mysqld/mysqld.sock',});
    

答案 1 :(得分:0)

MySQL服务器未运行时出现此错误。

我在MySQL.PrefPane(用于OS X上MySQL的系统偏好设置工具)中通过“初始化数据库”更改了配置-使用旧密码加密-修复了ER_NOT_SUPPORTED_AUTH_MODE。 此配置更改停止了MySQL Server,然后当我尝试从node.js连接到MySQL时得到了ECONNREFUSED。

通过从“ MySQL系统偏好设置”工具重新启动MySQL Server来解决。

答案 2 :(得分:0)

尝试修复mysql和Node.js脚本中定义的端口。 您可以在mysql目录中的 *。cnf 文件中定义mysqld端口, 并且可以在Node.js脚本中连接到MySQL时定义该端口。

cnf文件中的类似内容

port = 3360