-
Django-MySQL DB 연결하기(feat. mysqlclient )DataBase/MySQL 2021. 4. 23. 21:20728x90
Django에는 기본 내장 DB인 Sqlite가 있지만, 이는 간단한 DB(?)로 활용하기 위한 것으로
좀 더 큰 규모의 프로젝트를 진행하기 위해서 MySQL을 연동해서 사용할 수 있습니다.
먼저, Django에서 MySQL을 사용하기 위해서는 mysqlclient라는 라이브러리를 설치해야 합니다.
하지만 다음과 같은 설치 권한 문제로 인한 오류가 발생했습니다.
설치 권한 문제 해결
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/3.8'
Consider using the `--user` option or check the permission이를 다음의 명령어로 --user 부분을 추가하여 해결할 수 있습니다.
$ python3 -m pip install --user mysqlclient
Django settings.py 설정 변경하기
다음으로 Django settings.py에 있는 DATABASES 부분을 수정해 주어야 합니다.(대략 80번째 줄 쯤..?)
DATABASES = { 'default': { # django db를 mysql로 사용하겠음 'ENGINE': 'django.db.backends.mysql', # DB 이름 지어주기 'NAME': 'mytable', # 사용자 유저 계정 생성 후 입력하기 'USER': 'root', # 사용자 비밀번호 생성 후 입력하기 'PASSWORD': 'password', # default host인 localhost 'HOST': 'localhost', # MySQL default 포트 번호 'PORT': '3306', } }
여기까지 하고 DB migration을 진행하면 MySQL을 정상 연결할 수 있습니다.
$ python manage.py make migrations $ python manage.py migrate
아래는 추가적인 오류 해결 삽질 기록입니다.
MySQL 서버 실행 오류
MySQL을 DB로 사용하기 위해서는 서버를 먼저 실행해줘야 하는데, 실행하지 않고 백엔드를 실행하면 다음과 같은 오류가 발생합니다:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
# mysql 서버 실행하기 $ mysql.server start
Django-admin 경로 오류
zsh: command not found: django-admin
=> 위와 같은 에러 메세지가 나오면 django-admin에 대한 경로설정이 필요합니다.
# 해당 경로에서 django-admin 위치 확인 ~/Library/Python/3.8/bin/django-admin
# django-admin 경로 설정 해주기 $ sudo ln -s ~/Library/Python/3.8/bin/django-admin /usr/local/bin
MySQL 사용자 추가
# mysql 서버 실행 후 mysql> use mysql mysql > create user 사용자이름@localhost identified by '비밀번호';
- 이상 오늘의 삽질일기 끝!
여기저기 삽질도 해보고
날려도 먹으면서
배우는 게
결국 남는거다
- Z.Sabziller
'DataBase > MySQL' 카테고리의 다른 글
[MySQL] docker 컨테이너 mysql 서버 error(feat. port 추가하기) (0) 2023.03.22 [MySQL] mysql too many connection 에러 해결 (0) 2023.03.03 [MySQL] mysqlclient 설치 에러 해결 방법 (0) 2022.08.15 MySQL 설치 및 계정 설정(feat. MacOS) (0) 2021.04.16