节点MYSQL连接丢失:服务器关闭了连接
Posted
技术标签:
【中文标题】节点MYSQL连接丢失:服务器关闭了连接【英文标题】:Node MYSQL Connection lost: The server closed the connection 【发布时间】:2020-09-28 03:26:07 【问题描述】:我正在为与 mysql 连接的 discord 创建一个机器人。到目前为止,它工作正常,但是在更改了我托管 mysql 服务器的服务器之后(它总是远程的),它开始给出这个错误:
错误:连接丢失:服务器关闭了连接。
我运行查询并创建与服务器的连接的代码是这样的:
const connection = mysql.createConnection(
host: config.host,
user: config.dbUser,
password: config.dbPassword,
database: config.database
);
connection.connect(function(err)
if (err)
console.error("[MYSQL] Error: " + err.stack);
return;
console.log("[MYSQL] Connected with ID " + connection.threadId + "!");
);
function query(sql)
return new Promise(resolve =>
connection.query(sql, function(error, result, fields)
if (error) return error;
const analise = JSON.stringify(result[0]);
const final = JSON.parse(analise);
resolve(final);
);
);
exports.connection = connection;
exports.query = query;
有人可以帮我吗?
【问题讨论】:
【参考方案1】:const mysql = require('mysql2');
const myDB = mysql.createPool(
host: process.env.MYSQL_HOST,
user: process.env.MYSQL_USER,
password: process.env.MYSQL_PASSWORD,
port: process.env.MYSQL_PORT,
database: process.env.MYSQL_DB_NAME,
);
const queryConstructor = pool => (query, args = []) =>
new Promise((resolve, reject) =>
pool.getConnection((err, connection) =>
if (err)
return reject(err);
connection.query(query, args, (err, results) =>
connection.release();
if (err)
return reject(err);
resolve(results);
);
);
);
const query = queryConstructor(myDB);
query('SELECT 1 + 1')
.then(console.log)
.catch(console.error);
module.exports = query;
【讨论】:
以上是关于节点MYSQL连接丢失:服务器关闭了连接的主要内容,如果未能解决你的问题,请参考以下文章