개발/PYTHON-DJANGO

파이썬 장고 7. 데이터베이스 Mysql(MariaDB) 연결

Aireee 2021. 6. 21. 13:31
300x250
반응형

여기서는 MySQL 이 컴퓨터에 이미 설치되어 있고, 내 프로젝트 이름인 mysite 와 동일한 데이터베이스가 생성되어 있다는 것을 전제로 한다. 

Mysql 은 파이썬도, 장고도 아닌 별도의 프로그램이다. 엑셀같은 것이라고 생각하면 된다. 사용을 하기 위해서는 로그인을 해야 하기 때문에 장고 코어부분의 settings.py 파일에서 DATABASE 부분을 수정해주어야 한다. 아래와 같은 부분을 찾는다

mysite / mysite / settings.py

# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

지금은 기본셋팅으로 sqlite3 가 연결되어 있다. sqlite3 의 경우 매우 미니멀한 데이터베이스이기 때문에 로그인이고 뭐고 없다. 그냥 ENGINE 에 이름 설정해주고, 폴더안에 함께 있던 db.sqlite3 파일을 연결해주기만 하면 끝났다. 하지만 Mysql(MariaDB)의 경우 접속주소, 접속포트, 아이디, 패스워드를 함께 넣어주어야만 한다. 그러니깐 아래와 같이 고쳐주면 된다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysite',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': 'password',
    }
}

ENGINE 부분은 맨 뒷부분 sqlite3 가 mysql 로 변경되었을 뿐이고, 'NAME' 는 데이터베이스 명이라고 생각하면 되겠다 (역할이 맞는지는 잘 모르겠으나 아무튼 그렇다고 생각하자. 본인도 모든걸 다 알지 못하는 초보다. 본인 역시 공부하고자 알려주는 중임은 기억해주면 좋겠다)

HOST 는 mysql 이 설치된 위치다. 127.0.0.1 은 현재 작업중인 컴퓨터와 동일함을 의미한다. port 기본은 3306 이다 바꾸어도 되지만 몇몇 포트는 사용할 수 없으므로 그냥 기본이 좋다. USER 는 ID 이고 password 는 당연해 비밀번호이니 말해뭐하겠는가, 자유롭게 설정하면 된다. 

이렇게만 해주면 Mysql 과 장고의 연동이 끝난다. 너무나도 간단해서 환장할 것 같다. 

반응형