알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)
Django 데이터 베이스 설정 본문
데이터 베이스
처음으로 Django 를 사용 해서 프로젝트를 만들면 Database 중 Sqllite를 사용하게 됩니다.
프로젝트 폴더에 보면 db.sqlite3 파일이 있는것을 확인 할수 있습니다.
하지만 보통 프로젝트를 할때에 mssql,mysql,mariadb,oracle 등등 데이터 베이스를 사용하게 됩니다.
저는 여기서 mariadb 를 사용하겠습니다.
mariadb는 mysql와 거의 98% 호환 됩니다. 그냥 설치는 mariadb로 하고 사용법은 mysql 을 따르면 됩니다.
mariadb를 사용하는것은 mysql 이 오라클로 넘어가면서 라이센스 정책이 변경되었기 때문에 완전 무료인 mariadb를 사용합니다.
$ sudo apt-get install mariadb-server-10.0
사용은 그냥 mysql 사용과 똑같이
$sudo mysql -u root
처럼 사용하면 되지만
root에 초기 비밀번호설정을 해줘야 합니다.
$sudo mysql -u root
MariaDB [(none)]> use mysql
MariaDB [(mysql)]> update user set password = password('비밀번호') where user = 'root';
MariaDB [(mysql)]> flush privileges;
입력 하면 root 초기 비밀번호셋팅이 완료 됩니다.
일단 원격 접속 가능한 계정을 만들어야 합니다.
$sudo mysql -u root -p
MariaDB [(none)]> INSERT INTO mysql.user (host,user,password) VALUES ('%','djangouser',password('1234'));
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'djangouser'@'%';
MariaDB [(none)]> FLUSH PRIVILEGES;
저는 위와 같이 모든 IP 원격 접속 허용,DB 접근 허용 계정을 만들었습니다.
이후에 django 서비스에서 사용할 데이터 베이스를 만들어 줘야합니다.
$ mysql -udjangouser -p
MariaDB [(none)]> create database djangodb;
저는 DB 이름을 djangodb 라고 만들었습니다.
/etc/mysql/mariadb.conf.d/50-server.cnf의 파일을 열어서 수정을 해줘야 합니다.
$sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 127.0.0.1 을
#bind-address = 127.0.0.1 으로 주석 처리 해줍니다.
mysql 을 재시작 해줍니다.
$sudo service mysql restart
이제 원격 접속을 해보겠습니다.
저는 접속 프로그램으로 다른 컴퓨터에서 HeidiSQL GUI 클라이언트 프로그램을 사용하겠습니다.
위와 같이 접속에 성공 했습니다.
실무에서는 저 같은 경우에는 명령어를 모두 치는것보다는 GUI를 다루는 것이 신속하고 정확해서 GUI 프로그램을 사용 하는 편입니다.
또한 위의 프로그램은 무료이면서 GUI 로 하는 행동 모두를 SQL 쿼리를 보여주니 배움에도 좋은 자료가 됩니다.
이제 mysite/settings.py 의 파일을 수정해서 mysql로 Django 가 사용할수 있게 셋팅을 해줘야합니다,
$ nano mysite/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
LANGUAGE_CODE = 'en-us' 을
저는 LANGUAGE_CODE = 'ko-KR' 으로 수정 했습니다.
기본 설정으로는 sqlite3 베이스로
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
일단 python 가상환경에 mysql 사용을 위한 라이브러리를 설치해 줍니다.
$ sudo apt-get install libmysqlclient-dev
$ pip install mysqlclient
이제 django가 mysql에 Django가 필요한 DB를 설치 해도록 해줘야합니다.
다음과 같이 성공 했으니 확인 하겠습니다.
위와 같이 아까 없던 테이블들이 생기게 되었습니다. !!
'Web > Django' 카테고리의 다른 글
Django 모델 만들기 (0) | 2017.08.07 |
---|---|
Anaconda 가상환경 spyder IDE 적용 (0) | 2017.08.07 |
Django start app 만들기 (0) | 2017.08.05 |
Django 와 apache2 연동 (3) | 2017.08.05 |
Django 기본 프로젝트 만들기 (3) | 2017.08.04 |