You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 8.4 Docker部署:启用mysql_native_password报未知变量错误求助

解决MySQL 8.4 Docker容器中unknown variable 'mysql-native-password=ON'错误

问题原因

MySQL 8.4正式版本移除了--mysql-native-password这个命令行启动参数,该参数仅存在于早期预览/RC版本中,因此之前的配置在正式版镜像中会触发未知变量错误。要启用mysql_native_password插件,需要改用插件加载的配置方式。

解决方案

1. 使用配置文件加载并启用插件

创建一个自定义的MySQL配置文件(比如my.cnf),内容如下:

[mysqld]
plugin-load-add=mysql_native_password.so
mysql_native_password=ON

在Docker Compose或启动命令中挂载这个配置文件到容器的/etc/mysql/conf.d/目录(该目录下的配置会被MySQL自动加载):

# docker-compose.yml示例
services:
  mysql:
    image: mysql:8.4
    volumes:
      - ./my.cnf:/etc/mysql/conf.d/my.cnf
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password
    # 移除原有的command: --mysql-native-password=ON配置

2. 为用户设置mysql_native_password认证方式

插件启用后,需要手动为目标用户切换认证方式(默认是caching_sha2_password):

ALTER USER 'your_username'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;

可以通过docker exec命令进入容器执行上述SQL,或者在初始化脚本中添加该逻辑。

3. 验证插件状态

进入容器执行以下命令,确认插件已成功加载:

mysql -uroot -p -e "SHOW PLUGINS LIKE 'mysql_native_password';"

输出中Status列显示ACTIVE即为成功。

内容的提问来源于stack exchange,提问作者memeister

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 02:22:08