关于mySQL连接的问题

首先系统用的是manjaro(linux)系统,我在项目的目录下安装了mySQL,但是当我node timetrack_server.js文件时报了如下错误:

/home/dema/codeSpace/studyNode/testMySQL/timetrack_server.js:49
        if (err) throw err;
                 ^

Error: connect ECONNREFUSED 127.0.0.1:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1121:14)
    --------------------
    at Protocol._enqueue (/home/dema/codeSpace/studyNode/testMySQL/node_modules/mysql/lib/protocol/Protocol.js:144:48)
    at Protocol.handshake (/home/dema/codeSpace/studyNode/testMySQL/node_modules/mysql/lib/protocol/Protocol.js:51:23)
    at Connection.connect (/home/dema/codeSpace/studyNode/testMySQL/node_modules/mysql/lib/Connection.js:118:18)
    at Connection._implyConnect (/home/dema/codeSpace/studyNode/testMySQL/node_modules/mysql/lib/Connection.js:453:10)
    at Connection.query (/home/dema/codeSpace/studyNode/testMySQL/node_modules/mysql/lib/Connection.js:198:8)
    at Object.<anonymous> (/home/dema/codeSpace/studyNode/testMySQL/timetrack_server.js:40:4)
    at Module._compile (internal/modules/cjs/loader.js:722:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10)
    at Module.load (internal/modules/cjs/loader.js:620:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)

timetrack_server.js的代码如下:

var http = require('http');
var work = require('./lib/timetrack');
var mysql = require('mysql'); //引入MySQL API

var db = mysql.createConnection({  //连接MySQL
    host: '127.0.0.1',
    user: 'myuser',
    password: 'mypassword',
    database: 'timetrack'
});

var server = http.createServer(function (req, res) {
    switch (req.method) {
        case 'POST':  //HTTP POST请求路由
            switch (req.url) {
                case '/':
                    work.add(db, req, res);
                    break;
                case '/archive':
                    work.archive(db, req, res);
                    break;
                case '/delete':
                    work.delete(db, req, res);
                    break;
            }
            break;
        case 'GET':  //HTTP GET请求路由
            switch (req.url) {
                case '/':
                    work.show(db, res);
                    break;
                case '/archived':
                    work.showArchived(db, res);
            }
            break;
    }
});

db.query(
    "CREATE TABLE IF NOT EXISTS work ("  //建表SQL
    + "id INT(10) NOT NULL AUTO_INCREMENT, "
    + "hours DECIMAL(5,2) DEFAULT 0, "
    + "date DATE, "
    + "archived INT(1) DEFAULT 0, "
    + "description LONGTEXT,"
    + "PRIMARY KEY(id))",
    function (err) {
        if (err) throw err;
        console.log('Server started...');
        server.listen(3000, '127.0.0.1');   //启动HTTP服务器
    }
);

菜鸡前端一枚,第一次使用数据库,不清楚是哪里的问题,还望麻烦各位帮解答

阅读 2k
3 个回答

你的数据库服务中有这个数据库和相应的访问权限设置吗?

connect ECONNREFUSED 127.0.0.1:3306 都没连上~先验证是否已连上再做操作。

新手上路,请多包涵

telnet 一下3306 看一下是不是通着的确定mysql是否启动了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题