MySQL 8.0新的默认鉴权方式及配置方法

MySQL 8.0已于2018年4月19日GA,从Release Note中看到无论从新功能,诸如:隐藏索引、配置持久化、CTE(Common Table Expressions)、窗口函数、New UTF8,还是性能上的提升MySQL 8.0无疑都作出了重大的改善,大家应该都有跃跃欲试的冲动了吧。不知道你是否和我一样兴高采烈的安装成功MySQL 8.0之后,尝试登录MySQL却发现居然登录失败。

MySQL 8.0新的默认鉴权方式及配置方法

MySQL 8.0新的默认鉴权方式及配置方法

如果你使用的是原来老版本的mysql命令行工具,那么你遇到的报错可能长下面这个样子:

error 2059: Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

问题原因:

MySQL 8.0 GA之后默认的认证方式由mysql_native_password改为caching_sha2_password,低版本的MySQL客户端和驱动并不支持这一鉴权方式。如果你习惯用命令行工具访问数据库升级一下官方的客户端并不麻烦,但如果你使用的是第三方的软件,能否及时与官方保持同步更新就要碰碰运气了。

解决办法:

ALTER USER 'user'@'host' IDENTIFIED WITH mysql_native_password BY 'password';