Henu
개발냥발
Henu
전체 방문자
오늘
어제
  • 분류 전체보기 (411)
    • DevOps (52)
      • Kubernetes (19)
      • Docker (14)
      • AWS (3)
      • Nginx (4)
      • Linux (4)
      • ArgoCD (1)
      • CN (2)
      • NATS (0)
      • Git (5)
    • Back-End (30)
      • Django (18)
      • Spring (5)
      • JPA (1)
      • MSA (5)
    • CS (87)
      • SystemSoftware (20)
      • OS (25)
      • Computer Architecture (16)
      • Network (23)
      • Database (2)
    • Lang (21)
      • Java (9)
      • Python (4)
      • C# (8)
    • Life (12)
    • 블록체인 (2)
    • Algorithm (204)
      • BOJ (160)
      • 프로그래머스 (19)
      • LeetCode (4)
      • SWEA (1)
      • 알고리즘 문제 해결 전략 (8)
      • DS, algorithms (7)
      • Checkio (5)
    • IT (2)

블로그 메뉴

  • GitHub
  • 글쓰기
  • 관리자

공지사항

  • Free!

인기 글

태그

  • boj
  • 프로그래머스
  • 다이나믹 프로그래밍
  • django
  • Kubernetes
  • docker
  • BFS
  • Network
  • 백트래킹
  • DFS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Henu

개발냥발

[Django project #2] conda + Django + mysql 개발 환경 구축하기 (2) for Mac
Back-End/Django

[Django project #2] conda + Django + mysql 개발 환경 구축하기 (2) for Mac

2021. 4. 28. 14:05
 

[Django project #1] conda + Django + mysql 개발 환경 구축하기 (1) for Mac

1. Mac 에서 conda 가상환경 설치하기 1) conda 설치하기 Anaconda | Individual Edition Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning..

hyeo-noo.tistory.com

MySQL세팅을 완료 했으니 Django에 MySQL 데이터베이스를  적용해보자!

 

사실 데이터 베이스 적용은 개발이 완료되고, 배포 전에 데이터의 사이즈를 고려해서 정한다고 하는데..

어차피 나중에 할 거 지금 미리 연습해 보았다!

 

연습하다가 연결 도중 발생할 수 있는 에러란 에러는 다 발생해서 너무 힘들었음..진짜

Django 에서 데이터베이스 설정 변경

INSTALLED_APPS = [
    'quantDB', <- 여기 내가 만든 앱 추가
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

👇

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db이름',
        'USER': '사용자이름(기본은 root)',
        'PASSWORD': '패스워드',
        'HOST': 'localhost',
        'PORT':'8000',
    }
}

위와 같이 설정 해준다

그리고 터미널에

(venv) python manage.py makemigrations
(venv) python manage.py migrate

위 코드를 순서대로 입력해 django의 기본 모델들을 데이터베이스에 마이그레이션 해준다

 

여기서 수상한 오류가 뜨는 사람이 분명히 있을 것이다!

'caching_sha2_password'

오류에 위와 같은 글자가 보인다면 

MySQL이 8.0이상 버전에서는 패스워드를 sha2방식으로 암호화 하기 때문에

django가 새로운 암호화를 이해하지 못해 데이터베이스에 접근을 하지 못하기 때문이다

 

mysql> ALTER USER '사용자이름'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';

그래서 위와같이 native_password 방식으로 비밀번호를 재설정 해주면 문제가 해결될 것이다!

 

그런데 여기서 비밀번호를  재설정하려는데

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

위와 같은 오류가 또 생길 수 있다

이유는 '비밀번호' 에 입력한 비밀번호가 현재 MySQL의 비밀번호 정책에 맞지 않기 때문이다 (그냥 더 어렵게 하라는 의미)

 

그래서 현재 비밀번호 정책이 어떻게 되어있는지 확인해 보자

mysql> SHOW VARIABLES LIKE 'validate_password%';

왜 같은게 두 번 중복되어 있을까

아마 다른 분들은 조회를 해보면 7 rows in set으로 나오지 않을까 싶습니다(제껀 중복이 있어서..)

 

보면 validate_password_policy = MEDIUM 도 있고 validate_password_special_char_count = 1 도 있고 다양한 비밀번호 설정들이 저장되어 있다

mysql> SET GLOBAL validate_password_policy=LOW;

이런 식으로 비밀번호 정책들을 모두 원하는 대로 변경할 수 있다

 

나는 그냥 기본 설정 건드리지 않고 MySQL이 원하는 어려운 비밀번호를 설정해 주었다..

 

이제 비밀번호를 native_password로 설정 -> sha2 caching 에러를 해결했으니 다시 마이그레이션을 해보면 잘 될것이다!

 

 

이상 MySQL과 Django연결해보기 였습니다

잘못된 정보가 있을 시 피드백 해주시면 감사하겠습니다ㅎㅎ

'Back-End > Django' 카테고리의 다른 글

[Django] ORM 쿼리 최적화 (select_related, annotate, aggregates)  (0) 2021.10.11
[Security] XSS(Cross Site Scripting) 취약점 Django  (0) 2021.09.02
[Django] Google 소셜 로그인 (OAuth2.0)  (13) 2021.09.02
[Django] 회원정보 모델 설계 UserModel design #1  (0) 2021.05.17
[Django project #1] conda + Django + mysql 개발 환경 구축하기 (1) for Mac  (2) 2021.04.26
    'Back-End/Django' 카테고리의 다른 글
    • [Security] XSS(Cross Site Scripting) 취약점 Django
    • [Django] Google 소셜 로그인 (OAuth2.0)
    • [Django] 회원정보 모델 설계 UserModel design #1
    • [Django project #1] conda + Django + mysql 개발 환경 구축하기 (1) for Mac

    티스토리툴바