为什么我在节点中使用mysql的connection.query不起作用



目标:对数据库进行简单查询。

预期结果:";请打印一些东西"并且来自查询的结果被打印在终端上。

实际结果:终端上没有打印任何内容。

错误:没有错误消息。

这是db.js文件:

var mysql = require('mysql');

var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'todoDB'
});
connection.connect();
connection.query('SELECT * FROM categories', function (err, res, fields) {
console.log("please print something!")
if (err) throw err;
console.log(res);
});
connection.end();

我使用执行此文件

node db.js

在mysql-cli上,我可以进行此查询,而不会对上面给出的数据库名称、凭据和查询产生任何问题。

我知道connection.connect()工作,因为当我输入下面的代码时;数据库已连接"我认为问题发生在connection.query,但我不确定为什么。

connection.connect(function(err){
if(!err){
console.log("Database is connected");
} else {
console.log("Error while connecting with database");
console.log(err);
}
});

我已经查看了stackoverflow上的所有相关问题并尝试了它们,但似乎没有一个解决方案能解决我的问题。

因此,mySQL V8使用caching_sha2_password作为新的身份验证标准,而nodeJS插件不支持该标准。连接到数据库并尝试创建一个使用本机密码身份验证类型的新用户。

CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';

最新更新