Django는 기본적으로 python에서 지원해주는 sqlite를 DB로 사용하도록 default 세팅이 되어있습니다.
하지만 장기적으로 프로젝트를 진행한다면 다른 DB로 변경해줄 필요가 있으므로 해당 작업을 진행하겠습니다.
0. mysql과 django에 대한 기본 필요 설명
- Django는 MySQL 5.6 이상의 버전에서만 지원됩니다.
- Django의 inspectdb기능은 information_schema모든 데이터베이스 스키마에 대한 자세한 데이터를 포함하는 데이터베이스를 사용합니다.
- Django는 데이터베이스의 유니 코드(UTF-8 인코딩)를 지원합니다.
- MySQL에는 여러 스토이지 엔진이 있고, 서버 구성에서 기본 저장소 엔진을 변경할 수 있으나 기본 저장소 엔진은 InnoDB입니다.
- InnoDB 엔진은 완전 트랜잭션 방식이며 외부 키 참조를 지원합니다.
- InnoDB autoincrement 카운터는 MySQL을 재시작 할 때 AUTO_INCREMENT값을 기억하지 못하기 때문에 "max (id) +1"로 다시 생성됩니다. 이로 인해 관리자가 예상하지 못한 AutoField 값의 재사용이 발생할 수 있습니다.
- MyISAM 의 주요 단점은 트랜잭션을 지원하지 않거나 외래 키 제약 조건을 적용한다는 것입니다.
- Django는 mysqlclient 1.3.13 이상의 버전을 필요로 합니다.
1. mysql 설치
sudo apt-get update
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install python3-dev libmysqlclient-dev
sudo pip3 install ConfigParser
sudo pip3 install mysql-python
2. mysql root password
mysql -u root -p
>> SET PASSWORD = PASSWORD('root_passwd')
( ex. SET PASSWORD = PASSWORD('testpasswd123') )
3. mysql에서 특정 DB의 모든 테이블과 열이 기본적으로 UTF-8을 사용하도록 설정
mysql -u root -p
>> CREATE DATABASE <dbname> CHARACTER SET utf8;
4. Django 관련 mysql 세팅 설정
mysql -u root -p
>> SET GLOBAL validate_password_policy=LOW;
( 추가TIP!!! : 해당 명령어는 임시로 적용되니 서버 재부팅 혹은 mysqld restart시 다시 MEDIUM으로 돌아갑니다! )
CREATE DATABASE DB이름;
CREATE USER '사용자'@'localhost' IDENTIFIED BY '비밀번호';
GRANT ALL PRIVILEGES ON DB이름.* TO '사용자'@'localhost' IDENTIFIED BY '비밀번호';
( DB서버에 django가 올라가므로 위와 같이 localhost로 세팅 )
systemctl restart mysql
5. setting.py 파일의 DataBase 항목 수정
vim test001/settings.py
===============================
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '데이터베이스이름',
'USER': '사용자',
'PASSWORD': '비밀번호',
'HOST': 'localhost',
'PORT': '3306',
}
}
===============================
( DB서버에 django가 올라가므로 위와 같이 localhost로 세팅 )
6. ./manage.py runserver 0:8000
Error Log 출력 없는지 확인하여 없으면 정상으로 판단 -> 있는 경우 해결 필요
'Development > Django with Python' 카테고리의 다른 글
[Ubuntu18.04][Django2.2] 실습 01 : 프로젝트 생성, 정상 접속 확인 (31) | 2019.07.23 |
---|---|
[Ubuntu18.04][Django2.2] How to install Django (0) | 2019.07.23 |
[Python3.6][Django2.2][Ubuntu18.04] Django 앱생성하여 간단한 웹페이지 띄우기 - 2 (0) | 2019.06.01 |
[Python3.6][Django2.2][Ubuntu18.04] Django 체험을 위한 세팅, Django설치, 프로젝트 생성까지 - 1 (0) | 2019.06.01 |
[python3.6][Django2.2] Django 체험하기 - 1 (2) | 2019.05.31 |