MySQL 8.0密码认证机制升级,不知道可能导致业务不可用!!!

本文介绍了MySQL 8.0将默认密码认证机制从mysql_native_password升级到caching_sha2_password,以及由此带来的安全增强。升级可能导致业务连接问题,解决办法是配置default_authentication_plugin为mysql_native_password。caching_sha2_password引入了加盐哈希和更安全的SHA256算法,提高了安全性,但也需要考虑兼容性问题。
摘要由CSDN通过智能技术生成

前阶段团队小伙伴将MGR的版本从5.7升级到了8.0。在升级后,发现业务无法连接MySQL数据库的问题。

相信不少同学也遇到类似问题,有些可通过升级MySQL Connector驱动问题得以解决。然而,对于在线业务,升级MySQL Connector驱动是非常麻烦的事情。

这个问题的本质原因是:MySQL 8.0修改了默认的密码认证机制,将之前的mysql_native_password机制,升级到新的caching_sha2_password

因此,若想业务平滑升级到MySQL 8.0的话,显示的配置参数default_authentication_plugin,将其设置为8.0版本之前的mysql_native_password。

# /etc/my.cnf[mysqld]default_authentication_plugin = mysql_native_password

这是一个很简单的问题,但是背后却有着深远的原因。因为MySQL 8.0在不断加固数据库的安全性,而密码认证机制其中重要的一环。

今天让姜老师带同学们回顾MySQL的密码认证机制发展史。

old_mysql_password

在MySQL 5.6版本前,MySQL的密码认证机制为old_mysql_password。

在表mysql.user中的列password保存有密码hash后的数值。但是由于使用的hash算法已被破解。非常不建议在线上的MySQL实例中使用old_mysql_password密码认证机制。

mysql_native_password

mysql_native_password是MySQL 5.6、5.7默认的密码认证机制。对比原来的old_mysql_password认证机制,当用户连接MySQL实例时,通过challenge-reponse的密码校验机制进行认证。

客户端连接MySQL实例时,首先需要从服务器端获得一个20字节的随机数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值