内容提要
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的支持。