人。我正在学习如何使用 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);
});
};
我的文件部分用于路由和查询是
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.
});
});
});
答案 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);
});
};