我在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)
谢谢!
答案 0 :(得分:18)
我知道解决它的两种方法:
在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',});
答案 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