![[Django] 리눅스(우분투)에 장고와 아파치 설치 및 연동하기-(3)(MariaDB 연동)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgGObl%2Fbtq8xd49pj3%2FtX3k6DUSrIBB4DEeDmDVT1%2Fimg.png)
안녕하세요!
이번 시간에는 이전 포스팅에서 했던 리눅스에서 django와 apache2 연동 이어서 진행하겠습니다.
이번에는 MariaDB를 연동해주려고 합니다.
MariaDB 설치 및 연동
Django에서는 기본적으로 sqlite3을 제공하고 있지만
개발용 데이터베이스이기 때문에 웹 서비스를 이용하는 다수의 사용자가 사용하기에 무리가 있습니다.
따라서 데이터베이스를 바꿔주어야 하는데요.
MariaDB를 연동하겠습니다.
가장 먼저 리눅스(우분투)에 mariadb를 설치해야 합니다.
sudo apt-get install mariadb-server
다음 명령어를 입력하면 mariadb가 설치됩니다.
그러면 자동으로 필요한 패키지도 찾아서 설치하게 되는데요.
설치가 완료되면 MariaDB가 실행되어 DB에 접속할 수 있게 됩니다.
mysql -u root -p
를 입력하신 후에 비밀번호를 입력하시면

다음과 같이 MariaDB에 접속하실 수 있습니다.
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8;
다음과 같은 SQL 명령어를 입력하여 데이터베이스를 생성합니다.
USE mysql;
CREATE USER '사용자명'@'%' IDENTIFIED BY '비밀번호';
--외부 접속용 사용자 생성
CREATE USER '사용자명'@'localhost' IDENTIFIED BY '비밀번호';
--로컬 접속용 사용자 생성
GRANT ALL PRIVILEGES ON db_name.* TO '사용자명'@'%';
GRANT ALL PRIVILEGES ON db_name.* TO '사용자명'@'localhost';
--사용자에 권한 부여
FLUSH PRIVILEGES
--업데이트
exit
--DB 나가기
다음과 같은 명령어로 유저 생성하고 권한을 부여합니다.
이제 MariaDB 쪽에서는 끝났습니다.
Django Settings.py 파일로 가서 데이터베이스만 설정해주시면 되는데
그전에 MySQL-Django 클라이언트를 설치해야 합니다.
sudo apt-get install libmysqlclient-dev
sudo apt-get install python3-pip
(pip 설치가 안된 경우)
sudo pip3 install mysqlclient
다음과 같은 명령어를 입력하여 mysqlclient 패키지와 라이브러리를 설치해줍니다.
이제 vi 편집기로 settings.py 파일 안에
#DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
# }
#}
sqlite3을 주석 처리하거나 지우시고
아래의 MySQL db를 적어 넣어주시면 됩니다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_name', # Database 이름
'USER': 'root', # 데이터베이스에서 사용할 계정
'PASSWORD': 'db_password', # 계정의 비밀번호
'HOST': 'localhost', # 데이테베이스 주소
'PORT': '3306', # 데이터베이스 포트, mysql 디폴트값은 3306
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
}
}
}
DB 이름을 입력하고
유저 계정
비밀번호
HOST 로컬이면 localhost, 외부면 IP address
옵션 값을 입력하지 않으면 에러가 발생합니다.
이제 다음과 같이 입력하시고 저장하고 나와주세요.
python manage.py makemigrations
python manage.py migrate
이제 마이그레이션을 통해 데이터베이스 바뀐 내용을 반영합니다.

다시 mysql -u root -p를 통해 DB에 접속하신 후에
연동했던 데이터베이스에 들어가 table이 정상적으로 생성되었는지 확인하면
MariaDB와 정상적으로 연동이 되었다는 것을 확인할 수 있습니다.
이번 시간에는 지난 시간 linux-django-apache 연동을 마치고
데이터베이스도 연동해봤습니다.
이제 개발 서버가 아닌 웹 서버를 통해서 서비스를 할 수 있게 되었습니다!
그래서 System Flow를 간단하게 나타내면 이런 모양입니다.

고생하셨습니다!
'Framework > Django' 카테고리의 다른 글
[Django] 시크릿 키(SECRET_KEY) 분리 실습하기 (0) | 2021.08.15 |
---|---|
[Django] Django 파일 업로드에 대해 알아보고 File Upload 기능 실습하기 (4) | 2021.07.01 |
[Django] 리눅스(우분투)에 장고와 아파치 설치 및 연동하기-(2)(정적 파일, 에러 확인) (0) | 2021.06.30 |
[Django] 리눅스(우분투)에 장고와 아파치 설치 및 연동하기-(1)(wsgi) (0) | 2021.06.30 |
[Django] Form과 ModelForm에 대해 알아보고 form.save(), form.save(commit=False) 차이점 알아보기 (0) | 2021.03.24 |
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!