我尝试通过MySQL Java Script连接数据库,如下所示:
var mysql = require('mysql');
var con = mysql.createConnection({
host: "******",
user: "******",
password: "******"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
我正在使用Node执行,当我执行上述程序时收到以下错误消息:
if (err) throw err;
^
Error: connect ECONNREFUSED XX.XXX.XX.XXX: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)
此外,我已经ping了我的IP地址(ping XX.XXX.XX.XXX)并且能够获得响应。可以帮我连接数据库。
答案 0 :(得分:0)
我遇到了同样的问题,并通过添加socketPath参数解决了错误
SELECT
[Transaction Montly Query].Month,
[Transaction Montly Query].[Total Weight],
[Transaction Montly Query].[Total Transactions],
Format$(([Total Weight]/[Total Transactions]),'#.00') AS [Weight per Transaction],
[Unique Customer Query].[Unique Customers],
Format$(([Total Weight]/[Unique Customers]),'#.00') AS [Weight per Costomer],
Format$(([Total Transactions]/[Unique Customers]),'#.00') AS [Transactions per Customer]
FROM [Transaction Montly Query]
RIGHT JOIN [Unique Customer Query]
ON [Transaction Montly Query].Month = [Unique Customer Query].Month
GROUP BY
[Transaction Montly Query].Month,
[Transaction Montly Query].[Total Weight],
[Transaction Montly Query].[Total Transactions],
[Unique Customer Query].[Unique Customers]
ORDER BY [Transaction Montly Query].Month;
答案 1 :(得分:0)
我强烈建议您创建一个connectionPool来保存资源。我是这样做的:
//import settings.js
const db_config = {
hostname : "localhost",
user : settings.user, //username
password : settings.password, //password
database : settings.database //db
}
//create db connection pool
const con = mysql.createPool(db_config);
所以下一步是使用该连接池!不要害怕这段代码的异步/蓝鸟性质,它只是我如何构建它。
async function query(sql, params) {
const connection = await con.getConnectionAsync();
return connection.queryAsync(sql,params)
.then(rows => rows)
.finally(() => connection.release());
}
这是抓取连接getConnection
方法(异步来自蓝鸟宣传方法),并使用query
方法(异步' d),然后最终释放连接回到池。这有助于避免因未关闭的TCP连接导致的内存泄漏。
如果您已经从默认的MySQL端口更改了端口,请确保也指定端口。