【问题标题】:Error when connecting to MYSQL Database (NodeJS, socket.io, express)连接 MYSQL 数据库时出错(NodeJS、socket.io、express)
【发布时间】:2018-03-08 04:24:06
【问题描述】:

我和一个朋友刚刚开始开发一个小应用程序。它使用 NodeJS(带有 Socket.io 和 Express)。我们是 NodeJS 的新手,因此无法真正理解为什么我们会得到我们得到的错误。感谢每一寸帮助:)

代码如下:

var express = require('express');
var app = express();
var serv = require('http').Server(app);

app.get('/', function(req, res) {
    res.sendFile(__dirname + '/client/index.html');
});
app.use('/client', express.static(__dirname + '/client'));

serv.listen(2000);
console.log("Server started!");
var io = require('socket.io')(serv,{});


var md5 = require('md5');
var mysql = require('mysql');
var dbconn = mysql.createConnection({
    host: "mySERVER",
    user: "myUSER",
    password: "myPASSWORD",
    database: "myDBNAME"
});


dbconn.connect(function(err) {
    if (err) throw err; //THE ERROR IS THROWN HERE
});

io.sockets.on("connection", function(socket) {

    socket.on("register", function(obj){
        var sql = 'INSERT INTO users (name, password) VALUES ("' + obj.name + '", "' + md5(obj.password) + '")';

        dbconn.query(sql, function (err, result) {
            if (err) throw err;
            console.log("Result: " + result);

        });

    });
});

这是错误消息:

Error: connect ECONNREFUSED mySERVER:3306
at Object.exports._errnoException (util.js:1018:11)
at exports._exceptionWithHostPort (util.js:1041:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14)
--------------------
at Protocol._enqueue (PROJECTPATH\node_modules\mysql\lib\protocol\Protocol.js:145:48)
at Protocol.handshake (PROJECTPATH\node_modules\mysql\lib\protocol\Protocol.js:52:23)
at Connection.connect (PROJECTPATH\node_modules\mysql\lib\Connection.js:130:18)
at Object.<anonymous> (PROJECTPATH\app.js:32:8)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)

提前谢谢你!

【问题讨论】:

    标签: mysql node.js express socket.io


    【解决方案1】:

    这是一个数据库连接错误。你是 mysql 主机和/或端口是错误的。

    确保下面代码中传递给mysq.createConnection函数的信息是正确的:

    var dbconn = mysql.createConnection({
        host: "mySERVER",
        user: "myUSER",
        password: "myPASSWORD",
        database: "myDBNAME"
    });
    

    【讨论】:

    • 我 100% 确定这些是正确的,我检查了几个不同的用户,检查了我服务器上的 mysql 端口等等。加上所有数据在 PHP 中完美运行
    • 你的/etc/hosts文件怎么样,'mySERVER'的任何条目?
    • # --- BEGIN PVE --- myServer # --- END PVE --- 所以是的,我猜,那里的 ip 是正确的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 2018-03-07
    • 2017-12-08
    • 2021-07-06
    • 1970-01-01
    • 2013-03-05
    相关资源
    最近更新 更多