Node.JS连接MySQL数据库执行增删改查提示ER_NOT_SUPPORTED_AUTH_MODE: Client does not support;如何在@mysql/xdevapi执行SQL


发布者 ourjs  发布时间 1637743107941
关键字 Node.JS  MySQL  数据库 

在Node.JS连接MySQL数据库时,使用mysql模块时会报错 ER_NOT_SUPPORTED_AUTH_MODE: Client does not support 经查是这个MySQL驱动不支持MySQL新的加密方式。

var mysql  = require('mysql');  
 
var connection = mysql.createConnection({     
  host     : 'localhost',     //本机地址
  user     : 'root',          //用户名
  password : '123456',        //密码
  port     : '3306',          //端口号
  database : 'test'           //要连接的数据库
}); 
 
connection.connect();
 
var  sql = 'SELECT * FROM table1';   //查询table1表的所有数据

connection.query(sql,function (err, result) {
        if(err){
          console.log('[SELECT ERROR] - ',err.message);
          return;
        }
 
       console.log('--------------------------SELECT----------------------------');
       console.log(result);
       console.log('------------------------------------------------------------\n\n');  
});

文案1:更改MySQL加密方式

文案出处: https://stackoverflow.com/questions/50093144/mysql-8-0-client-does-not-support-authentication-protocol-requested-by-server

mysql> alter user 'root'@'localhost' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.27 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.08 sec)

文案2:使用@mysql/xdevapi

也可以使用 xdevapi, 安装:

$ npm install @mysql/xdevapi

用 xdevapi 执行SQL

const mysqlx = require('@mysql/xdevapi');

const options = {
  host: 'your server',
  port: 3306,
  password: '12345678',
  user: 'username',
  schema: 'password'
};

;(async () => {
  const session = await mysqlx.getSession(options)
  const schema = session.getSchema(options.schema)

  // 验证Schema
  await schema.existsInDatabase()


  const res = await session.sql(`
    SELECT  id, event, project_id, entity_id, entity_type, create_by, message, create_at
    FROM audit_log
    WHERE create_at > '2021-10-26'
    ORDER BY project_id,create_by,create_at desc
  `).execute();
  
  let rows = res.fetchAll();

  console.log(rows);

  session.close();
})()








 热门文章 - 分享最多
  1. CSS Grid网格入门实例教程: 强大的动态布局
  2. node.js中async/await不用try/catch,使用error first或go语言方法处理异常
  3. 网站集成百度、Bing必应搜索引擎,在网页中实现站内全文搜索
  4. React Hooks入门教程九:在React中集成使用Vue实现数据双向绑定,手动配置Webpack和Babel
  5. node.js性能压力测试入门教程:wrk和loadtest安装使用
  6. JavaScript和node.js内存泄露的原因和避免方法及Chrome调试工具使用教程
  7. Html5网页中用JavaScript调用本地手机摄像头扫描识别微信二维码、条形码:postMessage跨域https传递扫码结果消息
  8. JavaScript设置对象属性只读不可修改、不可枚举、不可删除:Object.defineProperty
  9. CSS教程:图片使用混合模式和颜色叠加filter滤镜,改变PNG图标颜色
  10. CSS教程:如何设置自动显示隐藏scrollbar滚动条,自定义外观样式/宽度,附demo示例大全

 相关阅读
  1. NodeJS在Windows上使用OLE/COM/ActiveXObject对象连接ADODB数据库,操作Application.Excel、运行VBA宏并另存为网页
  2. node.js通过Error.prepareStackTrace获取上层调用函数的文件名地址和行数位置
  3. webpack前端项目调试环境安装入门:webpack.config.js禁用UglifyJs只合并JavaScript不压缩混淆代码
  4. node.js创建aria2代理服务器:使用net.socket转发rpc或http request请求,替换websocket
  5. request停止维护:用node.js实现http网页爬虫抓取,模拟ajax\post请求,大文件上传下载
  6. 用node.js在Windows或Linux平台上高性能解压/压缩zip、tar大文件,输出到文件或Stream流
  7. Node.JS中回调嵌套和async/await执行空函数性能效率对比测试
  8. Node.JS如何按顺序调用async函数,如何判断是否为async函数,在mocha中自动化测试async/await代码
  9. node.js将回调函数嵌套,用promise改造成async/await顺序执行:异常处理和返回多个参数
  10. 基于Node.JS和Electron编写的集成开发环境 VS Code,成为最受欢迎的IDE

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA