首页 > 解决方案 > 错误 1396 (HY000) 在第 1 行:操作 CREATE USER 失败 'root'@'%'

问题描述

我正在尝试使用 docker compose 部署 Jhipster 生成的 springboot+mysql 应用程序。运行 docker 日志时,我在 mysql 中收到以下错误

错误 1396 (HY000) 在第 1 行:操作 CREATE USER 失败 'root'@'%'

我在 mysql.yml 中这样使用

environment:
        - MYSQL_USER=root
        - MYSQL_PASSWORD=yes
        - MYSQL_ALLOW_EMPTY_PASSWORD=yes
        - MYSQL_DATABASE=jhipsterdemo3

我像这样更新了 application-prod.yml

  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    url: jdbc:mysql://localhost:3306/jhipsterdemo3?useUnicode=true&characterEncoding=utf8&useSSL=false
    username: root
    password: root

我的 docker-compose.yml 像这样

jhipsterdemo3-mysql:
    image: mysql:5.7.20
    environment:
        - MYSQL_USER=root
        - MYSQL_PASSWORD=root
        - MYSQL_ALLOW_EMPTY_PASSWORD=yes
        - MYSQL_DATABASE=jhipsterdemo3
    command:             mysqld --lower_case_table_names=1 --skip-ssl
        --character_set_server=utf8mb4 --explicit_defaults_for_timestamp

请建议。

标签: mysqldocker-composejhipster

解决方案


尝试,

jhipsterdemo3-mysql:
image: mysql:5.7.20
environment:
  MYSQL_ROOT_PASSWORD=root
  MYSQL_DATABASE=jhipsterdemo3
command:             mysqld --lower_case_table_names=1 --skip-ssl
    --character_set_server=utf8mb4 --explicit_defaults_for_timestamp

如果您使用的是 root 用户,则不需要指定用户,并且您正在指定密码,因此 allow_empty_password 选项应该为 no,这是默认值。此外,由于您使用的是 root 用户,因此环境应该是MYSQL_ROOT_PASSWORD.


推荐阅读