ProxySQL 终于支持 caching_sha2_password 了!

ProxySQL 终于支持 caching_sha2_password 了!

💡 原文英文,约2100词,阅读约需8分钟。
📝

内容提要

ProxySQL发布2.6.0版本,新增caching_sha2_password支持,解决用户关注的身份验证问题。作者建议在生产环境前充分测试。

🔎

延伸解读

为何 caching_sha2_password 支持如此重要

MySQL 8 将 caching_sha2_password 作为默认认证插件,且从 8.0.34 起 mysql_native_password 被标记为弃用,未来可能移除。ProxySQL 此前不支持该插件,用户只能继续使用已弃用的 mysql_native_password,或在 ProxySQL 中明文存储密码,带来安全与合规风险。2.6.0 版本新增支持,解决了这一长期痛点。

迁移密码哈希的实用技巧

文章演示了从 MySQL 迁移密码哈希到 ProxySQL 的方法:在 MySQL 中使用 HEX(authentication_string) 获取十六进制字符串,便于复制粘贴;在 ProxySQL 中通过 UNHEX() 还原并更新 mysql_users 表。这避免了特殊字符带来的转义问题,简化了迁移操作。

Auth Switch 限制与失败场景

ProxySQL 2.6.0 对 caching_sha2_password 的支持存在限制,主要与 Auth Switch 功能相关。若客户端请求的认证方式与 mysql-default_authentication_plugin 设置不一致,认证将失败。例如,当插件和哈希均为 caching_sha2_password 但客户端请求其他方式,或哈希为 caching_sha2_password 但插件设置为其他方式时,ProxySQL 无法完成切换,导致连接失败。

生产环境部署前的测试建议

由于客户端软件和库种类繁多,caching_sha2_password 支持是一项重大变更。作者强烈建议在将任何更改推送到生产环境之前,对该功能进行充分测试,以验证兼容性并避免认证失败。

❓

Q&A

ProxySQL 2.6.0版本新增了什么功能?

ProxySQL 2.6.0版本新增了对caching_sha2_password身份验证方法的支持。

caching_sha2_password是什么?

caching_sha2_password是MySQL 8的默认身份验证方法,mysql_native_password已被标记为弃用。

在ProxySQL中如何设置caching_sha2_password?

在ProxySQL中,可以通过设置mysql-default_authentication_plugin为caching_sha2_password来启用该身份验证方法。

使用caching_sha2_password时需要注意什么?

需要注意Auth Switch功能的限制,某些情况下身份验证可能会失败。

为什么ProxySQL之前不支持caching_sha2_password?

ProxySQL之前不支持caching_sha2_password,导致用户在安全性和兼容性方面的担忧。

在生产环境中使用caching_sha2_password前应该做什么?

建议在生产环境前充分测试caching_sha2_password的支持。

🏷️

标签

➡️

继续阅读