Mysql docker 容器不断重启

Mysql docker container keeps restarting

容器不断重启。 我试过了

The container was working fine earlier.

日志

2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.

2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'

2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.

2021-03-27 13:16:08+00:00 [ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_USER and MYSQL_PASSWORD are for configuring a regular user and cannot be used for the root user

Remove MYSQL_USER="root" and use one of the following to control the root user password:

- MYSQL_ROOT_PASSWORD

- MYSQL_ALLOW_EMPTY_PASSWORD

- MYSQL_RANDOM_ROOT_PASSWORD

Docker-compose.yml

 mysql:
    image: mysql:8.0
    ports:
      - 3306:3306
    expose:
      - "3306"
    cap_add:
      - SYS_NICE # CAP_SYS_NICE
    volumes:
      - ./cache/mysql:/var/lib/mysql
      - ./conf-mysql.cnf:/etc/mysql/conf.d/mysql.cnf
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_PASSWORD=root
      - MYSQL_USER=root
      - MYSQL_DATABASE=mydb
    restart: unless-stopped

用户 root 已保留并已在 mysql 启动时创建。

MYSQL_USER 必须是不同的名称,而不是 root

只需删除 MYSQL_USER 即可,因为会自动创建 root 用户。

PS。这似乎是较新的 docker 版本的问题,因为它以前可以工作并且不会引发错误。

我遇到了完全相同的问题,下面是我如何解决的。

转到您的 docker-compose.yml 文件并进行以下更改:

  • "MYSQL_USER: root" 到 "MYSQL_ROOT_USER: root" 然后删除 上一个

  • "MYSQL_PASSWORD: YourPasseord" 到 "MYSQL_ROOT_PASSWORD: YourPasseord" 然后删除上一个。

    示例:这是我的配置...

database_server:

image: mysql:8.0
       container_name: mysql
       restart: always
       environment:
         MYSQL_DATABASE: DB_epraca
         MYSQL_ROOT_USER: root
         MYSQL_ROOT_PASSWORD: Password
         MYSQL_ROOT_HOST: localhost

仅更新​​您的 .env 文件:

DB_USERNAME=sail
DB_PASSWORD=password

官方最近更改了 mysql docker 导致此问题的方式。有关详细信息,您可以查看 this PR on github.

要获得快速解决方案,您应该删除 MYSQL_USER=root 并且您的 docker-compose.yaml 文件应如下所示

mysql:
    image: mysql:8.0
    ports:
      - 3306:3306
    expose:
      - "3306"
    cap_add:
      - SYS_NICE # CAP_SYS_NICE
    volumes:
      - ./cache/mysql:/var/lib/mysql
      - ./conf-mysql.cnf:/etc/mysql/conf.d/mysql.cnf
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=mydb
    restart: unless-stopped