使用Node.js连接数据库时报错
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
这是因为MySQL8.0以上的版本Node还暂时不支持导致的,有两种解决办法
1.降低MySQL的版本,
这种操作比较简单,直接去官网重新下载就好了,这里就不过多的赘述了MySQL官网
2.使用CMD连接数据库
我们在这里主要就讲解这种方法
mysql -u root -p
Enter password: ******
星号是自己的密码
登录成功后再输入这一行命令
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
这里的123456是我的密码,替换为自己的即可
最后刷新一下权限
FLUSH PRIVILEGES;
再次使用Node.js连接就可以了
最后给大家看一下我的代码
//1: 导入mysql依赖包, mysql属于第三方的模块就类似于 java.sql一样的道理
const {
Console } = require("console");
var mysql=require("mysql");
// 1: 创建一个mysql的Connection对象
// 2: 配置数据连接的信息
var connection = mysql.createConnection({
host:"127.0.0.1",
user:"root",
port:3306,
password:"123456",
database:"testdb"
})
// 3:开辟连接
connection.connect();
// 4: 执行curd
connection.query("select * from kss_user",function(error,results,fields){
//如果查询出出错,直接抛出
if(error){
throw error;
}
//查询成功
console.log("results = ",results);
});
// 5: 关闭连接
connection.end();
// 最后一步:运行node db.js 查看效果