본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

Django 웹 프레임워크에서 MySQL 데이터베이스로 변경

by easyfly 2025. 5. 4.
반응형

Django 웹 프레임워크에서  MySQL 데이터베이스로 변경

Django 웹 프레임워크에서 기본 데이터베이스(예: SQLite)에서 MySQL로 변경하려면 다음 단계를 순서대로 진행하시면 됩니다.


✅ 1. MySQL 설치 및 사용자/데이터베이스 생성

이미 설치되어 있다면 이 단계는 건너뛰어도 됩니다.

sudo apt install mysql-server  # Ubuntu 기준
sudo mysql_secure_installation

MySQL 접속 후:

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;

 


✅ 2. Python MySQL 클라이언트 설치

pip install mysqlclient

※ 오류가 발생하면 다음과 같은 의존 패키지를 먼저 설치해야 할 수 있습니다.

sudo apt install python3-dev default-libmysqlclient-dev build-essential  # Debian/Ubuntu

✅ 3. settings.py에서 DATABASE 설정 변경

settings.py 파일의 DATABASES 항목을 다음처럼 수정합니다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydb',  # DB 이름
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        },
    }
}

✅ 4. 마이그레이션 수행

python manage.py migrate

※ 에러가 없으면 정상적으로 테이블이 MySQL에 생성됩니다.


✅ 5. 데이터베이스 연결 테스트

python manage.py runserver

브라우저에서 기본 페이지가 잘 뜨면 연결 성공입니다.


🔐 보안 팁: .env 파일로 DB 정보 관리

.env 파일 예시:

DB_NAME=mydb
DB_USER=myuser
DB_PASSWORD=mypassword
DB_HOST=localhost
DB_PORT=3306

settings.py에서 decouple로 불러오기:

pip install python-decouple
from decouple import config

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': config('DB_NAME'),
        'USER': config('DB_USER'),
        'PASSWORD': config('DB_PASSWORD'),
        'HOST': config('DB_HOST'),
        'PORT': config('DB_PORT'),
    }
}

 

반응형

댓글