본문 바로가기
Project

[DataBase][Mac/M1] MySQL과 Django 연동 (계정생성, 권한부여, DB생성)

by SolaKim 2024. 5. 17.

Django 와 MySQL을 연동하기 위해서는 프로젝트 폴더에서 settings.py을 손봐줘야한다.

하지만 데이터베이스 정보는 외부로 유출될 시 위험할 수 있기 때문에 settings.py 에 직접적으로 쓰지않고 따로 manage.py 가 있는 폴더에 my_settings.py 를 만들어서 .gitignore로 관리한다.

my_settings.py에는 다음과 같은 내용을 입력하면 되고

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DB이름',
        'USER': 'DB사용자이름',  # 'root'
        'PASSWORD': 'DB사용자비밀번호',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"'
        }
    }
}

settings.py에는 다음과 같은 내용으로 불러오면 된다.

import my_settings

DATABASES = my_settings.DATABASES

 

이제 연동이 되어서, python manage.py makemigrations 를 터미널에 쳤는데, 다음과 같은 에러가 나왔다.

이는 다음과 같은 코드를 터미널에 입력하여 cryptography를 설치하면 해결 할 수 있었다.

pip install cryptography

 

다시 python manage.py makemigrations 를 터미널에 쳤는데, 이번엔 다음과 같은 에러가 나왔다.

뚜둥, 내가 위에 Database연동할때 sola 라는 username 과 classroom이라는 dbname을 사용했는데 그게 생성이 안된것이다.
이와 같은 경우는 직접 터미널을 통해서 user를 만들고, DB를 만들어야한다. 그 과정은 다음과 같다.

 

1. MySQL 계정 생성 방법

mysql -u root -p
(password)

terminal에서 root 계정으로 mysql에 접속한다.

mysql > select user, host from mysql.user;

위와 같은 명령어를 통해 계정 목록을 확인해볼 수 있다.

그리고 다음과 같은 명령어를 통해 계정을 생성할 수 있다.

mysql > create user 'USERID'@'%' identified by 'PASSWORD';

예를 들어서 userid를 sola로 설정하고, localhost로 생성하고 싶다면 create user 'sola'@'localhost' by 'PASSWORD';로 입력하면 된다.

이후 계정목록을 확인해보면 같이 새로 생긴 유저가 잘나오는것을 확인할 수 있을것이다.

 

2. Database 생성

아래 명령어로 현재 만들어진 database의 목록을 확인할 수 있다.

mysql > show databases;

데이터베이스를 생성하기 위해서 아래 코드를 입력한다. 

mysql > create database NAME;
mysql > show databases;

NAME에는 원하는 데이터베이스 이름을 작성하면 된다.

 

3. MySQL 계정에 권한 부여하기

다음과 같은 명령어를 사용하여 권한을 부여해줄 수 있다. 

grant all on DATABASE_NAME.TABLE_NAME to 'USERID'@'% or localhost';

database 전체를 해당 계정에서 사용할 것이라면 TABLE_NAME 의 위치에 * 을 입력하여 전체 테이블에 권한을 줄 것을 알려주면 된다.

환경설정을 변경했기 때문에 위 명령어를 입력하여 변경된 부분이 mysql에 적용될 수 있도록한다.

mysql > flush privileges;

 

자 이제 아까 만들었던 유저계정으로 들어가서, 아까 만든 database가 잘 존재하는지 확인해보자 .
아래 사진에 나온 순서대로 코드를 입력하면 된다.

위와 같이 sola 계정에 classroom인 database가 잘 들어온것을 확인할 수 있다.

 

 

 

참고 출처 : https://daseul.tistory.com/34