MySQL 8.0开始将caching_sha2_password作为默认的身份验证插件

   该caching_sha2_password sha256_password认证插件提供比mysql_native_password插件更安全的密码加密 ,并 caching_sha2_password提供了比更好的性能sha256_password。由于这些优越的安全性和性能特性 caching_sha2_password它是MySQL 8.0首选的身份验证插件,而且也是默认的身份验证插件而不是 mysql_native_password。此更改会影响服务器和libmysqlclient 客户端库;目前来说和经常使用的客户端软件兼容性不好。

jar包使用:MySQL Connector / J  8.0.9 或更高版本。

 

新安装MySQL8.0的数据库默认是使用caching_sha2_password身份验证的。

如果要更改root用户的身份认证方式,可以使用命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password  BY 'password';

 

1、caching_sha2_password兼容性问题和解决方案

   如果您的MySQL安装必须服务于8.0之前的客户端,并且在升级到MySQL 8.0或更高版本后遇到兼容性问题,解决这些问题并恢复8.0之前的兼容性的最简单方法是重新配置服务器以恢复到以前的默认身份验证插件(mysql_native_password)。例如,在配置文件my.cnf中使用以下行:

[mysqld]
default_authentication_plugin=mysql_native_password

    该设置允许8.0之前的客户端连接到8.0服务器,直到安装使用的客户端和连接器升级为了 caching_sha2_password。但是,该设置应被视为临时设置,而不是长期或永久性解决方案,因为它会导致使用有效设置创建的新帐户放弃提供的改进的身份验证安全性 caching_sha2_password

 

注意:

   如果目前使用的客户端和连接器不支持caching_sha2_password,则可以使用修改后的数据目录初始化过程,该过程会在创建root帐户后mysql_native_password立即关联该帐户,可以在初始化数据库的时候使用以下的方法解决:

①:初始化数据库的时候使用参数:--default-authentication-plugin=mysql_native_password 加上--initialize--initialize-insecure 选项

②:在配置文件中设置 default_authentication_plugin 为mysql_native_password选项,并使用--defaults-file选项和--initializeor 或 --initialize-insecure。

(在这种情况下,如果您继续将该选项文件用于后续服务器启动,则将创建新帐户,mysql_native_password而不是 caching_sha2_password除非您default_authentication_plugin 从选项文件中删除该 设置。)

 

官方文档:

https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

 

本文转自:http://www.mamicode.com/info-detail-2379083.html  

Logo

更多推荐