我在一些项目中使用 Docker 和 MySQL。由于默认删除了 MySQL 8.4 上的 mysql_native_password 插件,我遇到了一些问题。我已按照说明启用它,上周它工作正常。
做了这个:
未知变量'mysql-native-password=ON。
有人可以帮我解决这个问题吗,因为这很令人困惑?
您最近升级过MySQL版本吗?
我总是使用 docker 拉取 MySQL 的最新映像,并注意到与您相同的问题。事后看来,这可能并不明智。对我来说,这个问题是在 MySQL 从 8.x.x 更新到 9.x.x 时发生的:事实上,在查看补丁说明后,我发现:
mysql_native_password 身份验证插件,在 MySQL 中已弃用 8.0 已被删除,服务器现在拒绝来自不具备 mysql_native 权限的旧客户端程序的 mysql_native 身份验证请求 CLIENT_PLUGIN_AUTH 功能。为了向后兼容, mysql_native_password 在客户端上仍然可用;客户端 内置身份验证插件已转换为动态的 可加载插件。注意这些更改还需要删除以下服务器选项 和变量:
The --mysql-native-password server option
https://dev.mysql.com/doc/relnotes/mysql/9.0/en/news-9-0-0.html
如果您已经升级到9.x.x,则很难降级。您可能需要找到另一种方式来进行身份验证...