nodejs连接mysql错误

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

我用网上的方法 改变了密码的加密方式:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

重启mysql后还是不行

如何解决?

阅读 2.5k
2 个回答

你应该明确你具体是如何操作连接mysql的,用了什么连接方式。

比如用 nodejs的mysql组件,连接还是比较简单的,只需要配置:

var connection = mysql.createConnection({
  host     : '192.168.1.1', // mysql服务主机地址或者域名
  user     : 'user',      // 用户名
  password : 'password',  // 密码
  port: '3306',
  database: 'mydatabase'  // 要连接的数据库
});
connection.connect(); // 这里正式连接数据库服务
// 下面就是数据库具体操作...

这里连接不对的主要可能是 地址错误、用户名错误、密码错误
此外数据库服务上是否对 该用户的访问权限进行了正确配置也是一个可能。

https://dev.mysql.com/doc/ref...

修改 my.ini 的配置, 把默认授权改为 mysql_native_password

创建用户时, 如果想使用 caching_sha2_password , 使用子句 IDENTIFIED WITH caching_sha2_password

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题