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

Dri*_*100 3 mysql node.js express

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

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

在此输入图像描述

我连接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);
  });
};
Run Code Online (Sandbox Code Playgroud)

我的文件路由和查询的部分是这个

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.
                });

        });     

});
Run Code Online (Sandbox Code Playgroud)

Dri*_*100 10

好吧,我发现了这个问题.似乎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);
  });
};
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你,你让我很开心,我挣扎了一整天,最后我找到了你的答案并在这里找到了解决方案 (2认同)