도커 컨테이너 내에서 호스팅되는 phpmyadmin을 통해 MariaDB 데이터베이스에 액세스하려고 합니다.
다음을 사용하여 기본 LAMP 스택을 설정하려고 합니다.docker-compose
하지만 연결할 수 없습니다.mariadb
데이터베이스:사용phpmyadmin
컨테이너가 실행될 때.
문제를 해결하기 위해 나는 다시 벗었습니다.docker-compose.yaml
파일 대상:
version: '3.2'
services:
db:
image: mariadb
container_name: appsDB
restart: always
ports:
- '6603:3306'
environment:
MYSQL_ROOT_PASSWORD: secret
app:
depends_on:
- db
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
restart: always
ports:
- '8080:80'
environment:
PMA_HOST: db
컨테이너를 실행할 때 다음으로 이동할 수 있습니다.phpmyadmin
페이지 하지만 내가 들어갈 때root/secret
사용자 이름/암호 오류가 발생함:
Cannot log in to the MySQL server
mysqli::real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known
컴퓨터에 문제가 없는지 확인하기 위해 또한 실행했습니다.docker-compose up
데이터베이스 이미지가 다음으로 변경된 경우mysql
다른 모든 세부 사항을 동일하게 유지합니다.그때는 아무 문제가 없었습니다: php myadmin은 잘 작동했고 저는 동일한 것으로 정상적으로 로그인할 수 있었습니다.root/secret
이전 이미지에 사용된 자격 증명입니다.
왜 그런지 누가 조언해 줄 수 있나요?mariadb
행동하는 이유는 이것이고 도커 컨테이너에서 phpmyadmin을 통해 액세스할 수 있는 방법이 있습니까?
편집
용기 사이의 연결 상태를 확인하라는 조언에 따라 다음과 같이 보입니다.mariadb
컨테이너 데이터베이스를 시작하지 못했습니다.도커 로그의 결과는 다음과 같습니다.
2020-07-01 9:32:22 0 [Warning] 'default-authentication-plugin' is MySQL 5.6 / 5.7 compatible option. To be implemented in later versions.
2020-07-01 9:32:22 0 [Note] mysqld (mysqld 10.4.8-MariaDB-1:10.4.8+maria~bionic) starting as process 1 ...
2020-07-01 9:32:22 0 [Note] InnoDB: Using Linux native AIO
2020-07-01 9:32:22 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2020-07-01 9:32:22 0 [Note] InnoDB: Uses event mutexes
2020-07-01 9:32:22 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2020-07-01 9:32:22 0 [Note] InnoDB: Number of pools: 1
2020-07-01 9:32:22 0 [Note] InnoDB: Using SSE2 crc32 instructions
2020-07-01 9:32:22 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)
2020-07-01 9:32:22 0 [Note] InnoDB: Initializing buffer pool, total size = 256M, instances = 1, chunk size = 128M
2020-07-01 9:32:22 0 [Note] InnoDB: Completed initialization of buffer pool
2020-07-01 9:32:22 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2020-07-01 9:32:22 0 [ERROR] InnoDB: Invalid flags 0x4800 in ./ibdata1
2020-07-01 9:32:22 0 [ERROR] InnoDB: Plugin initialization aborted with error Data structure corruption
2020-07-01 9:32:23 0 [Note] InnoDB: Starting shutdown...
2020-07-01 9:32:23 0 [ERROR] Plugin 'InnoDB' init function returned error.
2020-07-01 9:32:23 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2020-07-01 9:32:23 0 [Note] Plugin 'FEEDBACK' is disabled.
2020-07-01 9:32:23 0 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
2020-07-01 9:32:23 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2020-07-01 9:32:23 0 [ERROR] Aborting
도커 내에서 이 문제를 해결하려면 어떻게 해야 하는지 누가 조언해 줄 수 있습니까?
추가 편집
최신 상태를 유지하기 위해 문제 없이 CLI에서 데이터베이스 컨테이너를 시작할 수 있습니다. 데이터베이스 시작 및 연결 준비:
docker run --name mariadbtest -e MYSQL_ROOT_PASSWORD=mypass -d mariadb
이미지/컨테이너의 구식 버전으로 작업하고 계십니까?당신의 docker-compose.yml은 저에게 잘 작동합니다(제 Docker 버전은 19.03.8이며, 그것이 중요하다고 생각하지 않습니다).
먼저 전체 스택을 재현하도록 강제로 시도해 보겠습니다.docker-compose up --force-recreate
나는 당신이 이 파일을 다음과 같이 언급하는 것을 주목했습니다.docker-compose.yaml
하지만 올바른 기본 확장자는 .yml이어야 합니다. 만약 당신이 .yml 파일로 그것을 만든 적이 있다면 (또는 도커 합성을 위해 직접 파일 이름을 지정함으로써) 도커가 새 파일을 자동으로 재구축하지 못할 것이라고 생각할 수 있습니다. 따라서 파일 이름도 다시 확인하십시오.
만약 그것이 작동하지 않는다면, 저는 phpMyAdmin 컨테이너의 셸에 들어가서 당신이 직접 연결할 수 있는지 확인하기 위해 몇 가지 네트워킹 명령을 시도하는 것을 제안합니다. 예를 들어, 설치합니다.mariadb-client
패키지 및 시도mysql -u root -h db -p
.
언급URL : https://stackoverflow.com/questions/62660150/trying-to-access-mariadb-databse-through-phpmyadmin-hosted-within-a-docker-conta
'source' 카테고리의 다른 글
URL에서 호스트 도메인을 가져오시겠습니까? (0) | 2023.07.29 |
---|---|
Oracle - 참조자에서 특정 열 선택 (0) | 2023.07.29 |
Python에서 장치 테스트의 데이터 출력 (0) | 2023.07.24 |
Spring Boot Web Client.기존 서블릿 멀티스레드 애플리케이션에서 빌더빈 사용 (0) | 2023.07.24 |
url 요청에서 배열을 보내는 방법 (0) | 2023.07.24 |