도커의 nextcloud 및 mariadb(둘 다): SQLSTATE[HY000] [2002] 해당 파일 또는 디렉터리가 없습니다.
nextlcoud와 mariadb를 Linuxserver 이미지로 셋업하고 nextcloud의 첫 번째 실행 마법사를 통과하고 싶을 때 장애물에 부딪히려고 했습니다.최초 실행 마법사의 모든 설정을 포함하는 오류 메시지
문제
즉, 첫 번째 마법사는Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] No such file or directory
.
질문:.
그것은 어디에서, 어떻게 문제를 해결할 것인가?
시스템.
Amahi 11을 사용하고 있으며 저장소에서 도커를 설치했습니다.도커 검증:
Client:
Version: 18.09.0
API version: 1.39
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:48:52 2018
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.0
API version: 1.39 (minimum version 1.12)
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:19:08 2018
OS/Arch: linux/amd64
Experimental: false
도커 컴포지트로 nextcloud와 mariadb를 시작합니다.mariadb의 내용을 따릅니다.
version: '2'
services:
mariadb:
image: linuxserver/mariadb
container_name: mariadb
environment:
- PUID=XX
- PGID=YYY
- MYSQL_ROOT_USER=root
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=nextcloud
volumes:
- <path/to/my/folder>:/config
ports:
- 3307:3306
restart: unless-stopped
이미 시도:
- 많은 연구가 헛수고로 끝나거나 다음 요점을 제시하게 됩니다.
- 따라서 오류 정보에서 데이터베이스가 실제로 존재하는지 확인하기 시작했습니다.
sudo docker exec -it mariadb bash
거기서, 패스워드가 설정되어 있지 않기 때문에, root에 「mysql」을 붙여 커맨드 라인에의 액세스가 거부되고 있는 것을 알 수 있었습니다(mmh...도킹 스테이션 파일에 무슨 문제가 있나요?어쨌든 나는 그것을 수정했다.mysql -u root -pSECRET
그리고.mysql -u root --password=SECRET
.와 함께show databases;
찾을 수 없었습니다nextcloud
데이터베이스입니다.(도커 컴포지트 파일에 문제가 있는 것 같습니다.)그래서 저도 만들었어요.create database nextcloud;
)데이터베이스가 올바르게 표시되게 되어 있습니다.<path/to/my/folder>
결과:변화 없어, 문제는 아직 남아있어. 도커 컴포지트 파일에서 몇 가지 편집을 더 했습니다.
version: '2' services: mariadb: image: linuxserver/mariadb container_name: mariadb environment: - MYSQL_ROOT_PASSWORD=secret - MYSQL_DATABASE=nextcloud - PUID=XX - PGID=YYY volumes: - <path/to/my/folder>:/config ports: - 3307:3306 restart: unless-stopped
그래서 저는 계층을 바꿔서 그 계층은 없앴습니다.
MYSQL_ROOT_USER=root
회선. 재기동할 때mysql -u root --password=SECRET
를 표시해 주세요.nextcloud
데이터베이스입니다.그러나 이러한 변경 내용이 지난번(수동) 변경에서 볼륨 내에 남아 있는지 알 수 없습니다.결과: 아직 문제가 있습니다.
그냥 궁금해서 로컬 호스트 포트를 가지고 놀기 시작했어요.3307을 선택한 이유는 호스트 시스템에서 3306에서 실행되고 있는 mariadb가 있기 때문입니다.포트 변경localhost:3307
로.localhost:WXYZ
- 같은 오류가 발생... - 변경 중localhost
로.<your host-IP>
!!!
성공.
나는 변했다localhost
->mariadb
그리고 그게 효과가 있었어!
나는 사용해야만nextcloud-mariadb:3306
접속 문자열로 사용합니다.도망쳐서 알아냈어$ docker ps -a
에 이름과 포트를 나타냅니다.
도커에서 Nextcloud를 실행할 때--link mariadb:mariadb
그 후 를 사용할 수 있습니다.mariadb
교체하다localhost
커스텀 서버 호스트명을 사용해야 했습니다.localhost
Linux 에서는 명령어를 실행하면 얻을 수 있습니다.hostname
.
도 같은 했습니다.MYSQL_HOST
, 「」의localhost
이름 경우)으로 합니다.MYSQL_HOST: mysql
에 기재되어 있습니다.docker-compose.yml
version: "3.7"
services:
mysql:
image: mysql
container_name: mysql-nextcloud
restart: unless-stopped
ports:
- 3306:3306
environment:
...
volumes:
...
app:
image: nextcloud
container_name: nextcloud
restart: unless-stopped
ports:
- 80:80
links:
- mysql
volumes:
...
environment:
MYSQL_PASSWORD: ...
MYSQL_DATABASE: ...
MYSQL_USER: ...
MYSQL_HOST: mysql
언급URL : https://stackoverflow.com/questions/55088828/nextcloud-and-mariadb-both-on-docker-sqlstatehy000-2002-no-such-file-or-d
'itsource' 카테고리의 다른 글
mysql 인덱스가 너무 많습니까? (0) | 2022.09.28 |
---|---|
두 개의 타임스탬프 열이 있는 테이블을 만드는 동안 Larabel 오류가 발생했습니다. (0) | 2022.09.28 |
SilverStripe PHP Forms - SelectionGroup을 FieldGroup 내에 네스트하면 관련된 SelectionGroup_Items 라디오 박스 중 하나가 표시되지 않습니다.왜요? (0) | 2022.09.28 |
PHP의 GET URL 매개 변수 (0) | 2022.09.27 |
Java Logging 프레임워크의 마커는 무엇이며 마커를 사용하는 이유는 무엇입니까? (0) | 2022.09.27 |