var db_options = {
host: 'localhost',
port: 3306,
user: 'root',
password: '',
database: 'test'
};
//加载mysql Module
var mysql = require('mysql'),client = null;
if(mysql.createClient) {
client = mysql.createClient(db_options);
} else {
client = new mysql.Client(db_options);
client.connect(function(err) {
if(err) {
console.error('connect db ' + client.host + ' error: ' + err);
process.exit();
}
});
};
client.query(
'create table TestTable1 values(name varchar(50),' +
'PhoneNum varchar(100))'
);
client.query(
'INSERT INTO TestTable1 '+
'SET Name = ?, PhoneNum = ?',
['ceshi', '******']
);
client.query(
'SELECT * FROM TestTable1',
function selectCb(err, results, fields) {
if (err) {
console.log(2);
throw err;
}
console.log(results);
client.end();
}
);
为何总是提示我Error: connect ECONNREFUSED 昨天还好好的啊。
谁给解惑下呀
哈哈,让您见笑了。 我就看到代码区块,稍微修改了下。请君赏析。
是不是菜鸟问题都不屑回答啊。。。
可能是mysql 未运行, 所以连接不上mysql
如果 mysql 已正常运行, 那么, 试试这两个方法:
- 编辑 mysql.conf, 将 skip-networking 注释掉.
- 这样设置 socket :
var client = mysql.createClient({ user: uuuu, password: pppp, host: ‘127.0.0.1’, port: ‘3306’, _socket: ‘/var/run/mysqld/mysqld.sock’,});
如何知道mysql运行没?
mysql.conf 有这个文件吗? 在哪里呢
@whisht : 看系统中正在运行的进程, 有没有mysqld 之类的
@j4cnodejs 下载完mysql模块,服务端引入模块后,在服务端写sql语句是不是无效?
我这边手动开启mysql的客户端(用于做PHP数据库),node.js终于没报连接不上了。 node是不是模块下载后实际还是需要客户端来支持?
我现在才知道需要mysql客户端支持。。。那天也是巧,刚好开着lamp环境在做。
原谅无知的小白吧。。。让你们贱笑了。
貌似不是你说的那样吧, 那天你应该是开着mysql "服务端"在测试, 这次你没开 mysql 服务. 至于客户端, nodejs + mysql client 模块不要求"mysql客户端程序"的支持. 不知道你能不能看懂?
@j4cnodejs 可是我今天开了客户端才可以。那天我有在调试php。昨天没开php环境,结果就不行。 你说的服务端指啥呢。
@whisht : 就是指 mysqld ,它会建立一个数据库服务器, 你的nodejs就能连上了. 如果连数据库服务器都没建立, nodejs当然无法连接数据库
@whisht : 我看了你的代码中 mysql server = localhost 也就是本机, 所以你在本机上运行 mysql 就是建立了一个数据库服务器,而不是"打开mysql客户端"