도커 구성: 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 데이터베이스에 액세스할 수 없습니다.
도커 허브의 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
'sourcecode' 카테고리의 다른 글
고유 인덱스가 있을 때 Oracle 10g과 11g 사이의 REF CURSOR에 대한 다른 동작? (0) | 2023.07.02 |
---|---|
프로그래밍 방식으로 발사 버튼 클릭 이벤트? (0) | 2023.07.02 |
USER()와 SYS_CONTEXT('USERNV', 'CURRENT_USER')의 차이점은 무엇입니까? (0) | 2023.07.02 |
mongodb는 뚜렷한 기록을 얻습니다. (0) | 2023.07.02 |
Gitstash 팝업 - 필요 병합, 인덱스를 새로 고칠 수 없습니다. (0) | 2023.07.02 |