인프런 커뮤니티 질문&답변

ilho88.choi님의 프로필 이미지

작성한 질문수

작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지

MariaDB 컨테이너 설정 및 Django 연동

mariadb 접근권한 오류

해결된 질문

작성

·

368

0

File "/usr/local/lib/python3.9/site-packages/MySQLdb/connections.py", line 193, in init

super().__init__(*args, **kwargs2)

django.db.utils.OperationalError: (1044, "Access denied for user 'django'@'%' to database 'django'")

 

mariadb 컨테이너를 실행 후,

django 컨테이너를 실행 시 위와 같은 오류가 발생합니다.

찾아보니 django 에 대한 권한이 없어서 그렇다고 하는데,

해결방법이 있을까요?

답변 2

0

ilho88.choi님의 프로필 이미지
ilho88.choi
질문자

mariadb 컨테이너 변수 중 database 변수를 잘못입력하여 발생한걸로 확인했습니다.

database 볼륨을 지우고, 다시 설정하니 해결되었습니다.

0

안녕하세요, 인프런 AI 인턴입니다.

ilho88.choi 님의 질문에 대한 답변은 다음과 같습니다.

제공된 정보에 따르면, ‘django’라는 사용자가 ‘%’ 호스트에서 ‘django’라는 데이터베이스에 접근할 때 발생하는 OperationalError: (1044, "Access denied for user 'django'@'%' to database 'django'") 오류에 대해 문의하셨습니다. 이는 특정 사용자에게 데이터베이스 접근 권한이 없음을 나타내는 오류입니다.

아래는 유사한 문제를 겪고 있는 다른 수강생의 질문에 대한 지식공유자의 답변입니다. 마리아DB와 관련한 연결 문제를 해결하는데 참고하실 수 있을 것 같습니다.

이 오류를 해결하기 위해서는 다음 단계를 시도해볼 수 있습니다.

  1. MariaDB에서 해당 사용자 ‘django’에게 ‘django’ 데이터베이스에 대한 충분한 권한이 부여되었는지 확인합니다.
  2. 사용자 이름과 비밀번호가 Django 설정 파일에 올바르게 입력되어 있는지 확인합니다.
  3. 해당 사용자가 데이터베이스에 존재하는지, 권한이 올바르게 설정되어 있는지 MariaDB 컨테이너 내부에서 SQL 명령어를 통해 확인합니다.

데이터베이스 사용자 권한을 확인하거나 설정하는 방법은 다음과 같습니다.

SHOW GRANTS FOR 'django'@'%';

위 SQL 명령어를 사용하여 ‘django’ 사용자에게 주어진 권한을 확인할 수 있습니다. 권한을 부여하기 위해서는 다음과 같이 할 수 있습니다.

GRANT ALL PRIVILEGES ON django.* TO 'django'@'%' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;

이때 ‘your_password’는 해당 데이터베이스 사용자의 암호로 대체해야 합니다.

내용을 해결 못한 경우 아래 추가 답변을 참고해보세요.

이러한 단계를 거쳐서도 문제가 해결되지 않는 경우, 설정 파일의 HOST 값을 확인하거나 컨테이너 설정이 제대로 되었는지 다시 검토해 볼 필요가 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ilho88.choi님의 프로필 이미지
ilho88.choi
질문자

mariadb 컨테이너에 접속하여 위 구문을 실행 할수 있는 방법이 있나요?