sourcecode

도커 구성: mariadb - 연결이 거부됨

codebag 2023. 7. 2. 19:28
반응형

도커 구성: mariadb - 연결이 거부됨

1단계) mysql5 & phpmyadmin

다음 mysql-phpmyadmin 구성을 이미지화합니다.

version: '3.6'

services:

  db:
    image: mysql:5.7.24
#    image: mysql:8.0.18
#    image: mariadb:10.4.8
#    command: --default-authentication-plugin=mysql_native_password
    restart: always
    volumes:
    - ./mysql5:/var/lib/mysql
#    - ./mysql8:/var/lib/mysql
#    - ./mariadb:/var/lib/mysql
    environment:
    - MYSQL_ROOT_PASSWORD=test
    - MYSQL_DATABASE=test
    - MYSQL_USER=test
    - MYSQL_PASSWORD=test

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:4.8.5
    restart: always
    depends_on:
    - db
    environment:
    - PMA_HOST=db
    - PMA_PORT=3306
    - PMA_USER=test
    - PMA_PASSWORD=test
    ports:
    - "3333:80"

phpmyadmin: http://localhost:3333/을 통해 mysql-database에 액세스할 수 있습니다.

2단계) mysql8 & phpmyadmin

이제 mysql8로 전환하고 이미지와 볼륨만 추가합니다.command-옵션을 사용합니다.mysql_native_password-항목:

version: '3.6'

services:

  db:
#    image: mysql:5.7.24
    image: mysql:8.0.18
#    image: mariadb:10.4.8
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    volumes:
#    - ./mysql5:/var/lib/mysql
    - ./mysql8:/var/lib/mysql
#    - ./mariadb:/var/lib/mysql
    environment:
    - MYSQL_ROOT_PASSWORD=test
    - MYSQL_DATABASE=test
    - MYSQL_USER=test
    - MYSQL_PASSWORD=test

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:4.8.5
    restart: always
    depends_on:
    - db
    environment:
    - PMA_HOST=db
    - PMA_PORT=3306
    - PMA_USER=test
    - PMA_PASSWORD=test
    ports:
    - "3333:80"

phpmyadmin: http://localhost:3333/을 통해 mysql-database에 액세스할 수 있습니다.

3단계) mariadb & phpmyadmin

이제 이미지와 볼륨만 변경한 다음 구성의 mariadb로 전환합니다.

version: '3.6'

services:

  db:
#    image: mysql:5.7.24
#    image: mysql:8.0.18
    image: mariadb:10.4.8
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    volumes:
#    - ./mysql5:/var/lib/mysql
#    - ./mysql8:/var/lib/mysql
    - ./mariadb:/var/lib/mysql
    environment:
    - MYSQL_ROOT_PASSWORD=test
    - MYSQL_DATABASE=test
    - MYSQL_USER=test
    - MYSQL_PASSWORD=test

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:4.8.5
    restart: always
    depends_on:
    - db
    environment:
    - PMA_HOST=db
    - PMA_PORT=3306
    - PMA_USER=test
    - PMA_PASSWORD=test
    ports:
    - "3333:80"

이제 phpmyadmin을 통해 mariadb 데이터베이스에 액세스할 수 없습니다.

enter image description here

도커 허브의 mariadb-README에 따라 환경 구성이 mysql5 컨테이너와 동일해야 합니다.제 생각에, 저는 또한 그것을 활성화할 필요가 있습니다.mysql_native_password이것은 mysql8-messages에 대해서는 작동하지 않습니다.

뭐가 그리울까요?이게 버그야, 아니면 내가 뭘 놓친 거야?

에 효과가 있습니다.mariadb와 함께--default-authentication-plugin=mysql_native_password단지 컨테이너 시작이 정말 느립니다.

[편집] 다양한 mysql 버전(5 및 8)과 최신 mariadb(10)에서 작동하는 MWE는 다음과 같습니다.

도커 합성 파일이 작동합니다.MariaDB 이미지로 전환하는 것보다 MySQL 컨테이너를 시작하면 정상적으로 작동합니다.도커 로그를 조사해야 할 것 같습니다.정답은 거기에 있습니다.

MariaDB에는 없습니다.default-authentication-plugin선택.그것이 원인일 수도 있습니다.

언급URL : https://stackoverflow.com/questions/58577255/docker-compose-mariadb-connection-refused

반응형