MySQL8.0 caching_sha2_password报错问题
用docker构建mysql容器后,通过navicat连接后遇到caching_sha2_password报错问题 。
因为MySQL8.0采用了新的更安全的验证方式,详情请查看mysql-8-0-4-new-default-authentication-plugin-caching_sha2_password
可以改成原生密码的加密方式来解决该问题。
查看身份验证类型
mysql> use mysql; Database changed mysql> SELECT Host, User, plugin from user; +-----------+------------------+-----------------------+ | Host | User | plugin | +-----------+------------------+-----------------------+ | % | root | caching_sha2_password | | localhost | mysql.infoschema | caching_sha2_password | | localhost | mysql.session | caching_sha2_password | | localhost | mysql.sys | caching_sha2_password | | localhost | root | caching_sha2_password | +-----------+------------------+-----------------------+ 5 rows in set (0.00 sec)
root
用户的验证器插件为 caching_sha2_password
修改身份验证类型(修改密码)
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; Query OK, 0 rows affected (0.00 sec) mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; Query OK, 0 rows affected (0.01 sec)
使生效
mysql> FLUSH PRIVILEGES;
验证是否生效
mysql> SELECT Host, User, plugin from user; +-----------+------------------+-----------------------+ | Host | User | plugin | +-----------+------------------+-----------------------+ | % | root | mysql_native_password | | localhost | mysql.infoschema | caching_sha2_password | | localhost | mysql.session | caching_sha2_password | | localhost | mysql.sys | caching_sha2_password | | localhost | root | mysql_native_password | +-----------+------------------+-----------------------+ 5 rows in set (0.00 sec)