>데이터 베이스 >MySQL 튜토리얼 >`MYSQL_ROOT_PASSWORD` 설정에도 불구하고 내 MySQL Docker 컨테이너에 '액세스 거부'가 표시되는 이유는 무엇입니까?

`MYSQL_ROOT_PASSWORD` 설정에도 불구하고 내 MySQL Docker 컨테이너에 '액세스 거부'가 표시되는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-05 08:03:10470검색

Why Does My MySQL Docker Container Show

MYSQL_ROOT_PASSWORD가 설정되었지만 Docker 컨테이너에서 MySQL DB에 액세스하려고 하면 "액세스 거부" 메시지가 나타납니다.

문제:

Docker에 MYSQL_ROOT_PASSWORD를 설정했습니다. docker-compose.yml 파일에 있지만 MySQL 데이터베이스에 연결을 시도하면 "사용자 'root'@'localhost'에 대한 액세스가 거부되었습니다(비밀번호 사용: YES)."

원인:

가장 가능성이 높은 원인은 이미 MySQL 데이터베이스 파일 시스템이 포함된 기존 볼륨에 대해 MySQL 컨테이너를 시작하는 것입니다. 이 경우 MYSQL_ROOT_PASSWORD를 포함한 어떤 환경 변수도 아무런 영향을 미치지 않습니다.

해결책:

처음부터 시작하여 컨테이너를 초기화하려면 다음을 수행해야 합니다. 기존 데이터 볼륨을 삭제하고 새 데이터 볼륨으로 컨테이너를 시작합니다. 이렇게 하면 데이터 볼륨의 이전 데이터베이스가 모두 지워지므로 필요한 경우 백업을 생성하십시오.

단계:

  1. docker-compose down 사용 - v 기존 데이터 볼륨을 삭제합니다.
  2. docker-compose up -d를 사용하여 새 데이터로 컨테이너를 시작합니다.

추가 정보:

이 문제는 MySQL Docker 이미지에만 국한되지 않습니다. 데이터베이스(예: PostgreSQL, MongoDB)의 많은 공식 도커 이미지는 비슷한 방식으로 작동합니다. 따라서 다른 데이터베이스에서 이 문제가 발생하는 경우 데이터 볼륨을 삭제하고 컨테이너를 처음부터 시작하는 해결 방법이 적용될 가능성이 높습니다.

위 내용은 `MYSQL_ROOT_PASSWORD` 설정에도 불구하고 내 MySQL Docker 컨테이너에 '액세스 거부'가 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.