Docker Desktop, Kubernetes 및 MySql: /var/lib/mysql/에 볼륨을 탑재할 수 없습니다.
<p>컴퓨터를 다시 시작할 때마다 데이터베이스의 내용이 손실되지 않도록 /var/lib/mysql 디렉터리를 영구 볼륨으로 마운트해야 합니다(저는 Docker Desktop과 Windows를 사용합니다).</p>
<p>但是启动Pod가 출시되었습니다.</p>
<pre class="brush:php;toolbar:false;">2023-03-07 21:10:15+00:00 [참고] [진입점]: MySQL Server 8.0.32-1.el8용 진입점 스크립트 시작되었습니다.
찾기: '/var/lib/mysql/': 작업이 허용되지 않습니다.
찾기: '/var/lib/mysql': 작업이 허용되지 않습니다.
chown: '/var/lib/mysql/'의 소유권 변경: 작업이 허용되지 않습니다.
chown: '/var/lib/mysql'의 소유권 변경: 작업이 허용되지 않습니다</pre>
<p>这是부署文件:</p>
<pre class="brush:php;toolbar:false;">종류: StorageClass
API버전: Storage.k8s.io/v1
메타데이터:
이름: 로컬 스토리지
제공자: kubernetes.io/no-provisioner
reclaimPolicy: 유지
VolumeBindingMode: WaitForFirstConsumer
---
api버전: v1
종류: 퍼시스턴트볼륨
메타데이터:
이름: mysql-pv
투기:
용량:
저장 용량: 500M
VolumeMode: 파일 시스템
액세스 모드:
- 읽기쓰기한번
StorageClassName: 로컬 스토리지
현지의:
경로: /c/data/db
노드어피니티:
필수의:
nodeSelector용어:
- matchExpressions:
- 키: kubernetes.io/hostname
연산자: 에서
값:
- 도커 데스크탑
---
api버전: v1
종류: PertantVolumeClaim
메타데이터:
이름: mysql-pvc
투기:
액세스 모드:
- 읽기쓰기한번
StorageClassName: 로컬 스토리지
자원:
요청:
저장 용량: 500M
---
api버전: v1
종류: 서비스
메타데이터:
이름: mysql
투기:
선택자:
앱: mysql
포트:
- 포트: 3306
타겟 포트: 3306
---
api버전: v1
종류: 서비스
메타데이터:
이름: mysql-lb
투기:
유형: LoadBalancer
선택자:
앱: mysql
포트:
- 포트: 3306
타겟 포트: 3306
---
api버전: 앱/v1
종류: StatefulSet
메타데이터:
라벨:
앱: mysql
이름: mysql
투기:
서비스 이름: mysql
복제본: 1
선택자:
일치 라벨:
앱: mysql
주형:
메타데이터:
라벨:
앱: mysql
투기:
컨테이너:
- 이미지: mysql:최신
이름: mysql
포트:
- 컨테이너 포트: 3306
자원: {}
볼륨마운트:
- 이름: mysql-volume
마운트 경로: /var/lib/mysql
환경:
- 이름: MYSQL_ROOT_PASSWORD
값:
configMapKeyRef:
키: MYSQL_ROOT_PASSWORD
이름: mysql-env
- 이름: MYSQL_ROOT_USERNAME
값:
configMapKeyRef:
키: MYSQL_ROOT_USERNAME
이름: mysql-env
볼륨:
- 이름: mysql-volume
영구볼륨클레임:
클레임 이름: mysql-pvc</pre>
<p>如果我对卷使用另一个装载路径,pod 会启动,但当然,每次重新启动计算机时数据库内容都会丢失。</p>
<p>또한 볼륨을 마운트하기 전에 chown 명령을 실행하여 디렉토리 소유자를 변경해 보았습니다. </p>
<pre class="brush:php;toolbar:false;">컨테이너:
- 이미지: mysql:최신
이름: mysql
포트:
- 컨테이너 포트: 3306
자원: {}
명령:
- chown
- -R
- 999:999
-/var/lib/mysql
볼륨마운트:
- 이름: mysql-volume
마운트 경로: /var/lib/mysql</pre>
<p>하지만 포드를 시작할 때 다음 오류가 발생합니다.
<code>chown: '/var/lib/mysql' 디렉토리를 읽을 수 없습니다: 작업이 허용되지 않습니다</code></p>
<p>도움을 주셔서 감사합니다. </p>