본문 바로가기
Django

django + mariaDB

by 이농이능 2018. 4. 16.

MariaDB

MySQL과의 호환성

마리아DB는 MySQL과 소스코드를 같이 하므로 사용방법과 구조가 MySQL과 동일하다.[10] 이름만 다르지 명령어나 사용방법 (5.5까지) 모두 MySQL과 동일하다. 

근본적인 차이점은 마리아DB는 GPL v2 라이선스를 따르는 순수한 오픈소스 프로젝트이기에 오라클로부터 자유롭다. 마리아DB의 모든 코드는 GPL, LGPL, LPGL, BSD의 라이선스로 만들어져 있다. 누구나 필요로 하면 커뮤니티를 통해 마리아DB를 내려받아 쓸 수 있다.


성능

마리아DB 커뮤니티는 MySQL과 비교해 애플리케이션 부분 속도가 약 4~5천배 정도 빠르며, MySQL이 가지고 있는 모든 제품의 기능을 완벽히 구현하면서도 성능 면에서는 최고 70%의 향상을 보이고 있다고 주장한다



Django 에 MariaDB 설치 후 연동하기


1. Virtualenv 

사용할 프로젝트만을 위한 환경을 만들 수 있는 virtualenv 를 설치 후 실행시킨다.

 $pip install virtualenv

프로젝트 폴더안에 환경 설치

myproject/
├── requirements.txt
└── venv

$ source venv/bin/activate    를 실행시키면 --> (venv)myproject $   가됨.



2.  장고와 mysqlclient 를 설치

pip freeze  // 설치된 패키지 출력 [설명보기]

$ pip install Django mysqlclient
$ pip freeze -l > requirements.txt


3. Django project 실행하기 -> http://wangin9.tistory.com/entry/Django-app-first-step?category=784811

$ django-admin startproject myproject

실행시키면, yproject/

├── manage.py
└── myproject/
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py

생성됨.


settings.py 의 코드에서 DATABASES 부분을 수정한다. 

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘myproject’,
‘USER’:’DB에 접속할때 설정한 이름’,
‘PASSWORD’:’DB에 접속할때 설정한 비밀번호',
‘HOST’:’localhost’,
‘PORT’:’’,
}
}


나중에 DB 설치 후 다시 수정해도 된다.  port는 host가 localhost일 경우 3306 으로 됨




4. MariaDB 설치 -- 자신의 OS에 맞춰서 명령어 사용한다.



centos7 에서 MariaDB 설치하기.


yum repository 만들어서 설치할 패키지들을 다운로드한다.  yum repository를 잘 활용하면 원하는 버전의 패키지 설치가 가능하다.

# vi /etc/yum.repos.d/저장소이름.repo

파일내용은 아래와 같은 형식으로 작성됩니다.


[저장소 이름]

name=저장소 표시이름

baseurl=저장소 주소 예) http://nginx.org/packages/centos/$releasever/$basearch/

enabled=활성화 여부 (0 or 1)

gpgcheck=gpg 서명키 사용여부 (0 or 1)

gpgkey= 서명키를 사용한다면 서명키 주소 입력




mariadb repository

/etc/yum.repos.d/MariaDB.repo



example MariaDB.repo file for CentOS 7


[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1



그 다음,




$yum install MariaDB-server MariaDB-client



하게 되는데,   나는 Mysql이 설치가 되어있어서 충돌이 일어남.


rpm -e --nodeps mysql-community-client-5.6.39-2.el7.x86_64


명령어 통해서 충돌되는 것 모두 삭제 후 다시한번 인스톨하였다.



MariaDB Start
$ /etc/init.d/mysql start

SUCCESS!

되면 root 패스워드를 설정한다. 

/usr/bin/mysqladmin -u root password 'new_password'

콘솔 구동

mysql -uroot -p'new_password'



하면 설치 및 연동 끝!


5. DB에 user 설정
> CREATE DATABASE myprojectdb;
> CREATE USER ‘myusername’@’localhost’ IDENTIFIED BY ‘mypassword';
> GRANT ALL PRIVILEGES ON myprojectdb.* TO ‘myusername’@’localhost';
> FLUSH PRIVILEGES;


6.  python manage.py migrate
 
하면 연동된다.



참고

https://mariadb.com/kb/en/library/yum/

https://conory.com/blog/42986

https://zetawiki.com/wiki/CentOS7_MariaDB_%EC%84%A4%EC%B9%98