提问者:小点点

sql到节点js的错误。错误:数据包乱序。得到:45预期:0


我得到一个错误在SQLNODEJS有什么我没有做好?是否有一个问题与我的连接到服务器(这是亚马逊服务器)2是否有一个问题与其余的代码谢谢

const mysql  = require('mysql');
let connection = mysql.createConnection({
  host     : "142.**.**.***",
  port     : '22',
  user     : 'db-*****',
  password : 'Yo*****'
});

 
connection.connect();
 
connection.query('SELECT * FROM wp_redirection_groups',  (error, results, fields) => {
    if(error) {
        return console.log(error);
    }
  console.log(results);
});
 
connection.end();

我需要改变什么吗


共1个答案

匿名用户

连接对任何查询都是隐式的,因此您不需要connect()函数,也通常不需要end()函数,除非您真的在大规模工作并且有充分的理由手动管理您的连接。连接将根据需要被重用、关闭、重新连接。

我很想知道你为什么要使用PORT: 22,因为这通常专用于SSH流量,使用它需要充分的理由和许多地方的大量自定义配置。默认的mysql端口是3306,所以我要仔细检查您是否按照您希望的方式配置了所有内容。不管值如何,它都应该按照int提供,而不是字符串

下面是一个简化的片段:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : '142.**.**.***',
  port     : 22,
  user     : 'db-*****',
  password : 'Yo*****'
});

connection.query('SELECT * FROM wp_redirection_groups;', function (error, results, fields) {
  if (error) console.log('there was an error', error);
  // connected, query complete, no errors
  console.log('the results object is:', results);
});

因为这个connect. query()示例是单独存在的(不是作为任何定义函数的一部分,可能会在需要时调用),所以您应该期望这个查询在启动node应用程序后立即执行一次,只要它包含在您的根文件或包含的模块中。