问题情形:

使用mybatis连接数据库,结果报错


问题描述:

Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Client does not support authentication protocol requested by server; consider upgrading MySQL client)


新版本mysql下的解决:

新版本:

1、mysql->user表中无password字段--被替换为authentication_string

2、更新密码的语句变化

解决:

StackOverflow答案建议使用旧密码哈希算法,并且以下语句有效,使NodeJS Sequelize客户端能够进行身份验证。

alter user 'USER'@'localhost' identified with mysql_native_password by 'PASSWORD'

使用此语句更新认证密码,重新连接mysql,发现成功了


相关链接:

Client does not support authentication protocol requested by server; consider upgrading MySQL client | NodeJs | MySQL Client v 2.12.0