본문 바로가기
Django/Django Vanila

18. Django MySQL 연동(연결)

by S.T.Lee 2022. 6. 6.

1. mysqlclient 설치

pip install mysqlclient

 

2. 커스텀 세팅 파일 생성

MySQL에 접속하기 위해서는 개인 비밀번호 등과 같은 개인정보가 필요로 한다. github에 해당 내용을 올리면 안되므로 MySQL등 커스텀 세팅 내용이 적힌 파일을 만들것이다.

#필자는 custom_settings.py로 지었다
touch (개인 세팅 파일 이름).py

 

custom_settings.py에는 하단과 같이 작성한다.

DATABASES = {
    'default' : {
        #사용할 엔진 설정
        'ENGINE': 'django.db.backends.mysql',
        #연동할 MySQL의 데이터베이스 이름
        'NAME': '데이터베이스 이름',                 
        #DB 접속 계정명
        'USER': '계정명/보통은 root',
        #해당 DB 접속 계정 비밀번호
        'PASSWORD': '비밀번호',
        #실제 DB 주소, 따로 설정 안했으면 그대로 두면 됨
        'HOST': 'localhost',                 
        #포트번호, 따로 설정 안했으면 그대로 두면 됨
        'PORT': '3306',                      
    }
}

 

다음 Django Projects/settings.py에 들어가서

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

상단의 내용을 하단의 내용으로 바꿔준다.

import custom_settings

DATABASES = custom_settings.DATABASES

 

3. 데이터베이스 연결

python manage.py migrate

만약 database 이름이 못 찾는다는 에러가 나온다면 당연하지만 MySQL에서 데이터베이스를 생성해두면 된다.

안에 세부항목은 만들 필요가 없다.(migrate로 해결된다.)

 

이를 확인하는 방법은 두가지이다.

 

1) Pycharm에서 확인

기존 sqlite3를 봤던 방법 그대로 파이참에서 확인할 수 있다.

 

2) MySQL에서 확인

MySQL cmd를 실행

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| yogi_otte          |
+--------------------+
10 rows in set (0.00 sec)

mysql> use yogi_otte;
Database changed

mysql> show tables;
+------------------------------+
| Tables_in_yogi_otte          |
+------------------------------+
| auth_group                   |
| auth_group_permissions       |
| auth_permission              |
| custom_user                  |
| custom_user_groups           |
| custom_user_user_permissions |
| django_admin_log             |
| django_content_type          |
| django_migrations            |
| django_session               |
| review                       |
| store                        |
| store category               |
+------------------------------+
13 rows in set (0.00 sec)

'Django > Django Vanila' 카테고리의 다른 글

20. Django authenticate 수정  (0) 2022.06.09
19. Django admin 편집  (0) 2022.06.06
17. Django 가비아에서 도메인 구입  (0) 2022.05.30
16. Django aws 연결  (0) 2022.05.30
15. Django 프로젝트 Github에 올리기  (0) 2022.05.30