Notice
Recent Posts
Recent Comments
코드 위의 하루 (A Day on the Code)
데이터베이스 오류 해결 모음집 본문
✅ Part 1. 마이그레이션 충돌 오류
- 오류 메시지:
django.db.utils.OperationalError: (1050, "Table 'users_user' already exists") - 발생 상황: 모델 수정 후 마이그레이션 파일 삭제 → 재생성 중 충돌 발생
- 원인 분석: DB에 기존 테이블이 남아있음
- 해결 방법:
# 1. DB 삭제 후 재생성
DROP DATABASE your_db_name;
CREATE DATABASE your_db_name CHARACTER SET utf8mb4;
# 2. 마이그레이션 파일 삭제 및 초기화
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
python manage.py makemigrations
python manage.py migrate
✅ Part 2. pymysql 모듈 오류
- 오류 메시지:
ModuleNotFoundError: No module named 'MySQLdb' - 원인: Django 기본은 MySQLdb, 우리는 pymysql 사용 중
- 해결 방법:
# __init__.py에 추가
import pymysql
pymysql.install_as_MySQLdb()
✅ Part 3. DB 로그인 실패
- 오류 메시지:
Access denied for user 'root'@'localhost' - 해결 방법:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;
✅ Part 4. Git push 시 DB 관련 파일 누락
- 문제 상황: models.py는 올라갔지만 migrations/, .env, settings.py 일부 누락
- 해결 방법:
git status # 추적되지 않은 파일 확인
git add . # 전체 파일 추가
git commit -m "DB 설정 및 마이그레이션 추가"
git push
⚠️ Part 5. 한글 깨짐 문제 (현재 해결 중)
- 문제 상황: DB에 저장된 한글이 ???로 보이거나 깨짐
- 추정 원인:
- DB 자체 인코딩이 utf8이 아닌 latin1 또는 ascii
- Django → MySQL 연결 설정에서 인코딩 옵션 누락
- 테이블/칼럼 생성 시 인코딩 명시하지 않음
- 현재 시도 중인 해결 방법:
1. MySQL에서 DB 인코딩 확인:
SHOW CREATE DATABASE your_db_name;
SHOW VARIABLES LIKE 'character_set%';
2. DB 재생성 시 명시적으로 인코딩 설정:
CREATE DATABASE your_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3. settings.py에 옵션 추가 예정:
'OPTIONS': {
'charset': 'utf8mb4',
'init_command': "SET NAMES 'utf8mb4'",
}
- 현재 상태:
아직 완전히 해결되지 않았으며, 새로 생성된 DB와 Django 설정이 일치하는지 추가 확인 필요
'⚙️ 오류 해결 모음집' 카테고리의 다른 글
🐛 마이페이지 기능 구현 중 겪은 오류 해결 모음 (0) | 2025.05.25 |
---|---|
🧨로그인 기능 구현 중 오류 해결 모음집 (JWT + Django + Docker) (0) | 2025.05.17 |
🐳 Docker가 Engine Starting에서 멈췄을 때의 해결기 (WSL2 삽질 로그) (0) | 2025.05.17 |
Git으로 인한 파일 누락 & 오류 해결 모음집 (0) | 2025.05.12 |
회원가입 구현 & 확인 과정 오류 모음집 (0) | 2025.05.12 |