Docker MySQL 报 2059 错误:认证插件 ‘caching_sha2_password’ 无法加载
在使用 Docker 部署 MySQL 数据库时,有时候会遇到报错信息:Authentication plugin ‘caching_sha2_password’ cannot be loaded。这是由于默认的 MySQL 认证插件机制发生了变化所致。本文将介绍如何解决这个问题,并提供相应的源代码示例。
问题描述
在通过 Docker 镜像部署 MySQL 数据库时,你可能会遇到以下错误信息:
Authentication plugin 'caching_sha2_password' cannot be loaded
这是因为从 MySQL 8.0 版本开始,默认的认证插件从原来的 mysql_native_password 更改为 caching_sha2_password。而某些老版本的客户端程序(例如旧版本的 MySQL Connector/J 或 PHP PDO 驱动)可能不支持该新的认证插件,导致连接数据库时报错。
解决方案
为了解决这个问题,有两种常用的方法可以尝试。
方法一:修改 MySQL 配置文件
可以通过修改 MySQL 配置文件,将默认的认证插件修改为 mysql_native_password,以兼容旧版本的客户端程序。
首先,停止 MySQL 容器的运行: