Nodejs(Express)连接MySQL - 本地和远程连接不同?

时间:2016-06-26 15:14:03

标签: mysql node.js express

人。我正在学习如何使用 Express连接到远程MySQL 。所以,我开始在我的本地机器(本地MySQL服务器)上执行此操作。在成功完成本地环境后,我尝试将连接更改为远程MySQL主机(在DB4Free上)。是的,我已经在localhost 上取得了成功。但是,每当我运行Get / Post到远程MySQL服务器时,我的控制台会在下面显示错误。我将在下面附上相关的代码段。我整个下午一直在尝试。 希望有人在这里可以启发这件事。提前谢谢你们:)

  

这是我的控制台中显示的错误

enter image description here

  

我连接db的文件如下 - ConnectionString.js

var mysql = require("mysql");

var pool = mysql.createPool({
        connectionLimit : 100,
        host     : '85.10.205.173:3306',
        user     : '******* ',
        password : '*******',
        database : '*******',
    });

exports.getConnection = function(callback) {
  pool.getConnection(function(err, conn) {
    if(err) {
      return callback(err);
    }
    callback(err, conn);
  });
};
  

我的文件部分用于路由和查询是

var express = require('express');
var router = express.Router();
var mysql      = require('mysql');
var conn = require('../database/ConnectionString');

var result;

//Validate user login
router.get('/login', function(req, res, next) {

        conn.getConnection(
            function (err, client) {

                client.query('SELECT * FROM mt_User', function(err, rows) {
                    // And done with the connection.
                    if(err){
                        console.log('Query Error');
                    }

                    res.json(rows);
                    client.release();

                    // Don't use the connection here, it has been returned to the pool.
                });

        });     

});

1 个答案:

答案 0 :(得分:9)

好吧,我发现了这个问题。似乎npm中的mysql包需要单独定义主机和端口。将它调整到下面的代码后,我的ConnectionString.js文件。它终于奏效了。

var mysql = require("mysql");

var pool = mysql.createPool({
        connectionLimit : 100,
        host     : '85.10.205.173',
        port     :  3306,
        user     : '*******',
        password : '*******',
        database : '*******',
    });

exports.getConnection = function(callback) {
  pool.getConnection(function(err, conn) {
    if(err) {
      return callback(err);
    }
    callback(err, conn);
  });
};