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.6k
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

推荐问题