Django를 이용하며 SQLite는 개발 환경에서 간편하게 사용할 수 있는 파일 기반 데이터베이스로, 추가 설정 없이 바로 사용할 수 있다. 하지만, 프로덕션 환경에서는 대량의 데이터를 다룰 때 한계가 있습니다. 이에 따라 더 안정적인 MySQL을 적용해 보겠습니다.
MySQL 소개 및 설치
MySQL 이란?
MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 데이터를 테이블 형태로 저장하고 관리한다. GUI 도구인 MySQL Workbench를 통해 편리하게 관리할 수도 있다.
설치하기
1. 공식 사이트에서 다운로드
MySQL 다운로드 사이트 로 들어가서 MySQL를 다운로드 한다.
( 다운로드는 MySQL설치 안내 이 블로그를 참고 했습니다. )
2. Hombrew를 이용하는 방법
brew inatall mysql
( Homebrew 이용 설치 방법 이 블로그를 참고 했습니다. )
MySQL Database 생성
Django와 연결하기 전에 먼저 MySQL에서 데이터베이스를 만들어 줘야 한다.
MySQL 접속
mysql -u root -p
# 접속시 비밀번호 입력
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 139
Server version: 9.1.0 MySQL Community Server - GPL
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
위 명령어로 MySQL에 접속한다. root는 사용자 이름이며, 비밀번호를 입력해야 한다.
데이터베이스 생성
CREATE DATABASE '이름' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
해당 명령어를 통해 데이터베이스를 만들 수 있다. 이 방법 말고도 MySQL Workbench 통해 서도 생성이 가능하다.
( MySQL Workbench 데이터베이스 생성 은 이 블로그를 참고했다. )
데이터베이스 확인
SHOW DATABASES;
# 출력 내용
mysql> SHOW DATABASES;
+----------------------+
| Database |
+----------------------+
| chat_django_database |
| information_schema |
| mysql |
| performance_schema |
| sys |
+----------------------+
5 rows in set (0.02 sec)
"chat_django_database"라는 데이터 베이스를 만들어 줬다.
Django 설정
MySQL과 django를 연동하기 위해 아래의 라이브러리를 설치해 준다.
pip install mysqlclient
해당 라이브러리가 설치 오류가 발생할 경우 설치해준다.
brew install mysql pkg-config
Python3 부터는 설치를 해주어 한다고 한다.
settings.py 설정
...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'chat_django_database',
'USER' : 'root',
'PASSWORD' : 'MYSQL_PASSWORD',
'HOST' : '127.0.0.1',
'PORT' : '3306',
}
}
...
기존에 사용하던 Sqlite를 MySQL로 변경해주고 데이터베이스 이름과 USER 이름과 mysql -u root -p 사용에 입력한 비밀번호를 입력해 준다.
마이그레이션 실행
python manage.py makemigrations
python manage.py migrate
데이터베이스 확인
아무오류 없이 migration까지 진행했다면 해당 데이터를 확인해 보자
#MySQL 접속
mysql -u root -p
# 데이터베이스 선택
use chat_django_database;
# 선택한 데이터베이스 테이블 환인
show tables;
마무리
SQL을 통해 직접 데이터에 접근하고 조회하는 방법을 알고는 있었지만, 실제로 활용할 기회는 많지 않았다. 이번 기회를 통해 MySQL과 Django의 연동을 경험하며 데이터베이스 관리에 대한 이해를 한층 높일 수 있었다. 앞으로는 MySQL 이외에도 기본적인 SQL 문법을 능숙하게 활용하고, 실무에 적용할 수 있도록 꾸준하게 학습해 나가야 겠다.
'Python > Django' 카테고리의 다른 글
Django 실시간 채팅 : 이미지 전송 구현 (0) | 2025.01.05 |
---|---|
[Django]WebSocket을 활용한 실시간 랭킹 구현 (0) | 2024.12.07 |
[Django] ORM N+1 문제 해결 : 지연로딩 (0) | 2024.12.01 |
[Django]데이터베이스 vs Redis: 실시간 접속자 관리 성능 비교와 최적화 (0) | 2024.11.30 |
Django와 React 연결 시 발생하는 CORS 문제 해결 방법 (0) | 2024.11.24 |