docker 运行mysql报错ERROR 1524 (HY000): Plugin ‘mysql_native_password‘ is not loaded
·
docker 运行报错
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded
解决方案
通过 启动容器时加载插件 或 挂载自定义配置文件 解决问题。
方法 1:启动容器时直接加载插件(已验证)
运行容器时通过 --plugin-load-add 参数显式加载插件:
docker run -d --name mysql01 \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
mysql:tag \
--plugin-load-add=mysql_native_password
-
参数说明:
-
-e MYSQL_ROOT_PASSWORD=123456:设置 root 用户密码。 -
--plugin-load-add=mysql_native_password:启动时加载mysql_native_password插件。 -
mysql:tag:指定 MySQL 镜像版本(如mysql:8.0)。
-
方法 2:挂载自定义配置文件
-
创建配置文件
在宿主机创建my.cnf文件(路径如/docker/mysql/conf/my.cnf),内容如下:[mysqld] plugin-load-add = mysql_native_password default_authentication_plugin = mysql_native_password
default_authentication_plugin:设置默认认证插件。
-
启动容器并挂载配置
docker run -d --name mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -p 3306:3306 \ -v /docker/mysql/conf/my.cnf:/etc/mysql/conf.d/custom.cnf \ mysql:tag
-v /docker/mysql/conf/my.cnf:/etc/mysql/conf.d/custom.cnf:将宿主机配置文件挂载到容器的 MySQL 配置目录。
验证插件并执行修改
-
进入 MySQL 容器
docker exec -it <容器名> bash -
登录 MySQL
mysql -uroot -p123456 -
检查插件状态
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'mysql_native_password';
- 输出应显示
PLUGIN_STATUS为ACTIVE。

-
修改用户认证方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES;
验证远程连接
从外部客户端测试连接:
mysql -h <Docker宿主机IP> -P 3306 -u root -p123456
更多推荐
所有评论(0)