docker 运行mysql报错ERROR 1524 (HY000): Plugin ‘mysql_native_password‘ is not loaded
指定 MySQL 镜像版本(如。:设置 root 用户密码。docker 运行报错。
·
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

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)