【问题标题】:ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL clientER_NOT_SUPPORTED_AUTH_MODE:客户端不支持服务器请求的认证协议;考虑升级 MySQL 客户端
【发布时间】:2019-03-19 19:33:29
【问题描述】:

nodejs中使用mysql的问题

const mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '123456789',
  database : 'userdata'
});

connection.connect(function(err) {
  if (err) {
    console.error('error connecting: ' + err);
    return;
  }

 console.log('connected as id ' + connection.threadId);
});

错误ER_NOT_SUPPORTED_AUTH_MODE:客户端不支持服务器请求的认证协议;考虑升级 MySQL 客户端

【问题讨论】:

标签: mysql node.js


【解决方案1】:

遇到了同样的问题。

安装MySQL Workbench

在 MySQL Workbench 中执行此查询:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456789';

返回 Node.js 并尝试再次运行该文件。它应该可以工作,至少对我有用。

【讨论】:

  • 这个查询禁止我使用 WorkBench 访问数据库
【解决方案2】:

最佳解决方案试试这个它会解决:

您使用“mysql 安装程序”安装了 mysql 服务器

1)open -> "mysql intsaller"

2)press reconfig mysql server

3)select left side "authentication method tab"

4)select radio button -->use legacy authentication method

5)now stop and restart the db 

谢谢!

【讨论】:

  • 谢谢,真的很有帮助
【解决方案3】:

在任何数据库软件(mysql workbench、datagrip、dbeaver...)中:

首先运行这个查询:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

其次,如果您的问题仍然存在,请运行此查询:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 

使用 dockorize mysql 分别组合和运行这两个查询对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-10
    • 2018-10-13
    • 2018-10-29
    • 2023-03-05
    • 2018-11-03
    相关资源
    最近更新 更多