chown: '/var/lib/mysql/' 소유권 변경: 작업이 허용되지 않습니다.
openshift origin에 mariadb 이미지를 전개하려고 합니다.도커 파일에서 mariadb:10.2.12를 사용하고 있습니다.로컬에서는 정상적으로 동작합니다만, openshift origin에 전개하려고 하면, 다음의 에러가 표시됩니다.
데이터베이스 차단을 초기화하는 중: '/var/lib/mysql/' 소유권 변경: 작업이 허용되지 않음 데이터베이스 디렉토리의 소유권을 'mysql' 사용자에게 변경할 수 없습니다.필요한 권한이 있는지 확인하고 다시 시도하십시오.
chown 명령어는 mariadb:10.2.12 Docker 파일에서 가져옵니다.
처음에는 root user 문제가 있어서 openshift origin에서는 허용되지 않기 때문에 현재 사용하고 있습니다.
사용자 mysql
도커 파일에 있습니다.지금은 루트로 달리는 것에 대한 경고는 듣지 않지만 오픈 시프트 원점은 Chown을 좋아하지 않는다.저는 원래 관리자가 아니라 사용자입니다.도커 파일은 다음과 같습니다.
FROM mariadb:10.2.12
ENV MYSQL_DATABASE="db_profile"
COPY ./my.cnf /etc/mysql/my.cnf
COPY ./db_profile.sql /docker-entrypoint-initdb.d/
USER mysql
EXPOSE 3306
로컬에서는 다음과 같이 실행합니다.
도커 빌드. -t laeeq/ligandprofiledb:0.0.1
도커 실행 --name test-password -e MYSQL_ROOT_PASSWORD=mypassword -d laeeq/ligandprofiledb:0.0.1
이 문제를 해결할 방법이 있나요?
DockerHub의 MariaDB 이미지는 다음과 같이 실행할 필요가 없습니다.root
사용자입니다.
대신 OpenShift에서 제공하는 MariaDB 영상을 사용해야 합니다.예:
centos/mariadb-102-centos7
참조:
OpenShift 웹 콘솔의 서비스 카탈로그 브라우저에서 마리아DB를 선택하거나mariadb
템플릿이 표시됩니다.
$ ls -ld /var/lib
drwxr-xr-x 79 root root 4096 Oct 7 20:58 /var/lib
이 디렉토리의 내용을 변경하려면 다음과 같이 하십시오./var/lib/mysql/
, 당신이 할 필요가 있습니다.root
.
Dockerfile의 USER mysql 전에 소유권을 변경하거나 컨테이너를 루트로 실행해야 할 경우 서비스 계정을 정의하고 배포 권한을 부여해야 합니다.https://github.com/openshift/origin/issues/9131#issuecomment-231952259 를 참조해 주세요.
언급URL : https://stackoverflow.com/questions/48306277/chown-changing-ownership-of-var-lib-mysql-operation-not-permitted
'source' 카테고리의 다른 글
믹스인이란 무엇이며 왜 유용한가? (0) | 2023.01.09 |
---|---|
Prepared Statement를 사용하여 삽입된 행의 ID를 반환하려면 어떻게 해야 합니까? (0) | 2023.01.09 |
MySQL "IN" 쿼리에서 순서 유지 (0) | 2023.01.09 |
반복기를 목록으로 변환하는 가장 빠른 방법 (0) | 2023.01.09 |
8자만의 UUID 생성 (0) | 2023.01.09 |