节点MYSQL连接丢失:服务器关闭了连接

时间:2020-06-09 03:04:45

标签: mysql node.js discord.js

我正在为不和谐的机器人创建一个与mysql连接的机器人。到目前为止,它可以正常工作,但是在更改了我托管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 个答案:

答案 0 :(得分: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;