DBMS:MySQL(无版本)区分大小写:plain=mixed,delimited=exact 连接被拒绝

Mus*_*oyi 7 mysql intellij-idea apple-silicon apple-m1

无法在 mac m1 上使用 IntelliJ 连接到数据库。

使用Homebrew安装了MySQL,我可以通过终端访问MySQL,我不知道我做错了什么。

我尝试过重新安装、更改密码、重新启动机器。但没有希望

DBMS:MySQL(无版本)区分大小写:plain=mixed,delimited=exact 连接被拒绝

小智 6

如果您在使用 Docker 时遇到 MySQL 数据库问题,该问题可能是由 docker-compose.yaml 文件中的 MYSQL_USER=root 条目引起的。此条目定义数据库环境的用户,并且可能会与 root 用户产生冲突。

    db:
        image: mysql:8.0
        ports:
          - "3306:3306"
        environment:
          - MYSQL_ROOT_HOSTS=%
          - MYSQL_DATABASE=spring_boot_mysql
          - MYSQL_USER=root
          - MYSQL_ALLOW_EMPTY_PASSWORD=1
        volumes:
          - ./docker/volume_mysql:/var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

要解决此问题,您应该删除 MYSQL_USER=root 条目,并使用以下方法之一来管理 root 用户密码:

MYSQL_ROOT_PASSWORD MYSQL_ALLOW_EMPTY_PASSWORD MYSQL_RANDOM_ROOT_PASSWORD

在寻找解决方案的过程中,我发现Docker 日志提供了一条有用的错误消息:

[错误] [入口点]:MYSQL_USER="root"、MYSQL_USER 和 MYSQL_PASSWORD 用于配置常规用户,不能用于 root 用户。

通过从docker-compose.yaml文件中删除MYSQL_USER=root,问题得到解决,数据库连接成功建立。

这是最终的数据库定义:

    db:
        image: mysql:8.0
        ports:
          - "3306:3306"
        environment:
          - MYSQL_ROOT_HOSTS=%
          - MYSQL_DATABASE=spring_boot_mysql
          - MYSQL_ALLOW_EMPTY_PASSWORD=1
        volumes:
          - ./docker/volume_mysql:/var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

我希望这些信息可以帮助您解决您的问题。