programing

Mysql 도커 컨테이너가 계속 다시 시작되고 있습니다.

closeapi 2023. 11. 7. 20:53
반응형

Mysql 도커 컨테이너가 계속 다시 시작되고 있습니다.

컨테이너가 계속 다시 시작됩니다.나는 노력했다.

  • 도커- compose 다운 -v
  • 도커 볼륨 rm

아까는 컨테이너가 잘 작동하고 있었습니다.

로그

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

도커-작곡.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

제거만 하면 됩니다.MYSQL_USER그리고 그것은 잘 작동할 것입니다. 왜냐하면root사용자가 자동으로 생성됩니다.

PS. 이전에는 오류가 발생하지 않고 작동했었기 때문에 새로운 도커 버전에서는 문제가 있는 것 같습니다.

사용자root이미 mysql로 작성되어 있을 때 예약되어 있습니다.

MYSQL_USER다른 이름이어야 합니다.root.

저도 똑같은 문제에 직면했고, 제가 해결한 방법은 이렇습니다.

docker-compose.yml 파일로 이동하여 다음을 변경합니다.

  • "MYsql_USER:root"에서 "MYsql_ROOT_USER:root"으로 이동한 다음 이전 파일을 삭제합니다.

  • "MYQL_PASSERORD:YourPassord"에서 "MYQL_ROOT_PASSERORD:YourPassord"로 이동한 다음 이전 암호를 삭제합니다.

    예:여기 제 환경설정이 있습니다.

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

최근에 공식적인 mysql 도커가 이 문제를 일으킨 방법이 변경되었습니다.자세한 사항은 github에서 이 PR을 확인할 수 있습니다.

빠른 해결을 위해서는 제거해야 합니다.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

.env 파일만 업데이트합니다.

DB_USERNAME=sail
DB_PASSWORD=password

언급URL : https://stackoverflow.com/questions/66831863/mysql-docker-container-keeps-restarting

반응형