node knex mysql ER_NOT_SUPPORTED_AUTH_MODE

原创
2019/01/26 18:43
阅读数 830

knex.js

knex是可以用于支持 node.js和browser 查询SQL的框架。

安装

根据官网介绍 安装十分简单

npm install knex --save

并选择安装你需要的数据库驱动


$ npm install pg
$ npm install sqlite3
$ npm install mysql
$ npm install mysql2
$ npm install oracle
$ npm install mssql

使用

配置文件

var knex = require('knex')({
  client: 'mysql',
  connection: {
    host : '127.0.0.1',
    user : 'your_database_user',
    password : 'your_database_password',
    database : 'myapp_test'
  }
});

Code

function test1(){
 let query =knex("name").select("tag.url");
 query.where("api.id",1);
 query.then(data =>{
     console.log(data)
 }).catch(err =>{
     console.log(err)
 })
 return query
}

其他

更多的使用 可以查询 官网

Error

在测试上述代码后发现执行没有得到预期效果,反而报错

code: 'ER_NOT_SUPPORTED_AUTH_MODE',
  errno: 1251,
  sqlMessage:
   'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
  sqlState: '08004',
  fatal: true

发现是客户端不支持mysql的版本,由于mysql是 docker pull mysql:latest出来的容器。版本为8.0.14

处理

出现'Client does not support authentication protocol requested by server; consider upgrading MySQL client'错误时,要么升级客户端,要么降低服务端。而且查看node.js mysql driver 支持版本为 5.7.21, 降低服务端mysql版本,再次测试成功。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部