caching_sha2_password取代mysql_native_password成为MySQL8.0以上版本的默认密码认证方式

1、MySQL8.0修改密码认证插件(authentication plugins)

       MySQL8.0版本公布了新的密码加密认证插件caching_sha2_password,而先前版本的默认插件是mysql_native_password。根据官方描述,caching_sha2_password和sha256_password(caching_sha2_password和sha256_password类似)的加密性能强于mysql_native_password,比后者拥有更安全的密码散列,因此8.0版本之后将caching_sha2_password作为MySQL的首选认证插件。

2、更新或安装8.0以上版本MySQL后如何修改密码认证方式

      本次更新同时影响到了服务器和libmysqlclient客户端库。我们应该意识到,虽然MySQL进行了修改,但是有些第三方客户端可能并不支持该类修改

  1、对于服务器,default_authentication_plugin系统变量的默认值由mysql_native_password变成了caching_sha2_password。

      但上述更改仅适用于安装或升级到MySQL8.0及其以上版本后创建的新用户,对于升级安装前已经存在的账户,其身份验证插件保持不变。如果您希望切换到caching_sha2_password,则应该用下述语句:

ALTER USER user
  IDENTIFIED WITH caching_sha2_password
  BY 'password';

  2、对于libmysqlclient客户端库,该库将mysql_native_password视为默认身份验证插件。

3、恢复到以前的默认密码验证插件mysql_native_password

        如果您必须要为8.0版本之前的客户端提供服务的话,那我们就应该对身份验证插件进行修改,在MySQL的安装目录路径下的配置文件my.ini中我们加入:

[mysqld]
default_authentication_plugin=mysql_native_password

       所谓MySQL的安装目录路径指的是如下这个含有bin、include等的路径,我的路径是C:\Program Files\MySQL\MySQL Server 8.0,可根据自己的电脑配置进行更改,其中的“配置设置”类型的文件my就是我们要修改的文件my.ini

       但是由于本文件夹下可能需要权限,我们对于my.ini的修改完成后点击保存会弹出“另存为”对话框:

      因此我们选择,将my.ini剪切到其他地方(例如桌面),此时会弹出对话框询问需要拥有管理员权限才能进行该操作,点击“确认”后,在桌面上进行相关修改再重新剪切到原位置即可。

      P.S.:官方极力组织该操作,并将其称之为“临时性的操作”,因为该操作会让以后创建的新用户放弃了改进后的caching_sha2_password而采用原始的mysql_native_password,看得出官方对于该改进比较满意(当然了,不满意的话怎么可能更新)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值