Restful API

[Restful API] Python 에서 MySQL 커넥션

건휘맨 2024. 5. 21. 12:41

 Python을 사용하여 MySQL 데이터베이스에 연결하는 방법

데이터베이스 연결 설정을 별도의 설정 클래스에 저장하고

해당 설정을 사용하여 MySQL 데이터베이스에 연결하는 함수 get_connection을 정의

 

1. 전용 DB 유저 생성

특정 디비만 접속할 수 있는 계정을 하나 만든다.

MySQL Workbench에서 코드를 실행

use mysql;
create user '사용할 유저 이름'@'%'identified by '비밀번호';
grant all on 사용할DB.* to '사용할 유저 이름'@'%';

# %는 와일드카드로, 모든 호스트를 의미
# 간단히 말해, '사용할 유저 이름'@'%' 는 
# 해당 사용자가 어떤 IP 주소를 가진 호스트에서든 접근할 수 있도록 허용한다는 것을 의미
# 보안 상의 이유로 실제 서버에서는 % 대신에 특정한 IP 주소나 호스트명을 지정하여 접근을 제한하는 것이 좋다.

 

MySQL Workbench 홈으로 돌아와 Connection을 만들어 사용

커넥션 이름은 알아보기 쉽게 정하고

위에 입력했던 이름, 비밀번호를 입력

 

 

2.설정 클래스 정의

class Config:
    HOST = '호스트'
    DATABASE = '데이터베이스'
    DB_USER = 'DB유저네임'
    DB_PASSWORD = '패스워드'

Config 클래스는 데이터베이스 연결에 필요한 설정 값을 저장

이 클래스의 속성으로 데이터베이스 호스트, 데이터베이스 이름, 사용자 이름, 비밀번호를 정의

  • HOST: 데이터베이스 서버의 주소 (예: 'localhost' 또는 IP 주소).
  • DATABASE: 사용할 데이터베이스 이름.
  • DB_USER: 데이터베이스 사용자 이름.
  • DB_PASSWORD: 데이터베이스 비밀번호.

 

3. 필요한 모듈 임포트

import mysql.connector
from config import Config

 

 

4. 데이터베이스 연결 함수 정의

def get_connection():
    connection = mysql.connector.connect(
        host=Config.HOST,
        database=Config.DATABASE,
        user=Config.DB_USER,
        password=Config.DB_PASSWORD
    )
    return connection

 

이 함수는 mysql.connector.connect 메서드를 사용하여 데이터베이스에 연결하고, 연결 객체를 반환한다.