이 포스팅은 Gemini AI에 의해서 작성되었습니다.
안녕하세요! 이번 포스팅에서는 파이썬(Python)으로 MySQL 데이터베이스를 제어하는 가장 대표적인 라이브러리, pymysql의 설치부터 실제 서버 환경에서 사용되는 커넥션 풀(Connection Pool) 개념까지 차근차근 알아보겠습니다.
가장 먼저 파이썬에서 pymysql 라이브러리를 사용할 수 있도록 설치해야 합니다. 터미널(cmd, PowerShell 등)을 열고 아래 명령어를 입력해 주세요.
Bash
pip install pymysql
pip는 파이썬의 패키지 관리자로, 이 명령어 한 줄이면 설치는 간단하게 끝납니다. ✅
이제 설치된 pymysql을 이용해 데이터베이스에 연결하고, SELECT 쿼리로 데이터를 가져와 출력하는 기본 코드를 작성해 보겠습니다.
전체 코드
Python
import pymysql
db_host = "127.0.0.1"
db_user = "root"
db_password = "1234"
db_name = "cookdb"
conn = None # conn 변수를 미리 선언하고 초기화
try:
# 2. DB 연결 (Connection)
conn = pymysql.connect(
host=db_host,
user=db_user,
password=db_password,
db=db_name,
charset='utf8'
)
print("DB 연결 성공")
# 3. 커서(Cursor) 생성
# 커서는 SQL 문장을 실행하고 결과를 받아오는 통로 역할을 합니다.
cur = conn.cursor()
# 4. SQL 실행 및 결과 가져오기
sql = "SELECT * FROM usertbl;"
cur.execute(sql)
rows = cur.fetchall() # 실행 결과를 모두 가져옴
# 5. 결과 출력
for row in rows:
print(row)
except Exception as e:
print(f"오류 발생: {e}")
finally:
# 6. 연결 종료
if conn:
conn.close()
print("DB 연결 종료")
try...except...finally: DB 작업 중 오류가 발생하더라도 finally 블록이 항상 실행되므로, conn.close()를 통해 연결을 안전하게 종료할 수 있습니다.
pymysql.connect(): 입력한 접속 정보로 DB에 연결을 시도하고, 성공하면 Connection 객체를 반환합니다.
conn.cursor(): 생성된 연결을 통해 SQL을 주고받을 Cursor 객체를 생성합니다.
cur.execute(sql): SQL 쿼리를 DB에 전송하여 실행합니다.
cur.fetchall(): execute로 실행된 SELECT 문의 결과를 모두 가져옵니다. 결과는 리스트 속의 튜플 [ (행1), (행2), ... ] 형태로 반환됩니다.
conn.close(): 모든 작업이 끝난 후 DB 연결을 해제합니다. 이 과정을 거치지 않으면 불필요한 연결이 계속 남아서 시스템 자원을 낭비하게 됩니다.