Django 에서는 기본적으로 sqlite3와 연동된다. 따라서 MySQL을 사용하고 싶다면, 설정을 해주어야한다.
파이썬에서는 mysqlclient
라는 라이브러리를 통해 MySQL과 DB를 연동할 수 있다.
먼저 작업을 할 가상환경으로 진입한 후 설치해주자
pip3 install mysqlclient
이제 실제 장고 세팅에 들어가서 데이터베이스를 MySQL로 쓰겠다는 설정을 해줘야한다.
수정하기 전에 나는 my_settings.py
파일을 하나 생성해서 그 안에 데이터베이스를 연동시키는 정의를 입력하고, my_settings.py
를 임포트해서 사용했다.
touch my_settings.py
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql', [1]
'NAME': 'starbucks', [2]
'USER': 'root', [3]
'PASSWORD': 'password', [4]
'HOST': 'localhost', [5]
'PORT': '3306', [6]
}
}
위 명령에 대한 설명은 다음과 같다.
[ 1 ] : 사용할 엔진 설정. 그대로 두면 됨
[ 2 ] : 연동할 MySQL의 데이터베이스 이름
[ 3 ] : DB 접속 계정명
[ 4 ] : 해당 DB 접속 계정 비밀번호
[ 5 ] : 실제 DB 주소, 따로 설정 안했으면 그대로 두면 됨
[ 6 ] : 포트번호, 따로 설정 안했으면 그대로 두면 됨
현재 상태에서 settings.py를 확인해보면 데이터베이스 부분에 다음과 같이 설정되어 있을 것이다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
이 부분을 다음과 같이 수정해주자
import my_settings
DATABASES = my_settings.DATABASES
이제 실제로 사용할 데이터베이스를 생성한다.
mysql -u root -p
명령을 통해 Mysql을 실행시킨 후 다음의 명령어로 데이터베이스를 만들어준다.mysql> CREATE DATABASE starbucks CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| mysql_test |
| performance_schema |
| starbucks |
| sys |
+--------------------+
6 rows in set (0.01 sec)
생성이 제대로 된 것을 확인할 수 있다. 이 생성 한 데이터베이스를 사용하기 위해선 다음의 명령어를 입력한다.
mysql> use starbucks;
Database changed
mysql> show tables;
Empty set (0.01 sec)
데이터베이스가 변경되었고, 아직 테이블을 생성하지 않았기 때문에 테이블이 없다는 메세지를 반환해준다.
설정 교체가 완료된 후 python3 manage.py migrate
를 실행해 데이터베이스에 테이블을 만들어준다.
show tables; 로 확인해보면 테이블이 정상적으로 생성 된 것을 확인할 수 있다.
데이터베이스에 값을 저장하는 스크립트 파일을 생성해뒀다면 스크립트 파일을 실행해주면 테이블에 값이 저장되는 것을 확인할 수 있다.
이걸 보고 MySQL을 깨달았습니다...