본문 바로가기
Python notes/Web Programming

파이썬) Pandas로 MySQL 접속하는 두가지 방법 (+Pymysql, SqlAlchemy)

by 성실한 나무 2021. 5. 10.

#1. 준비작업:

파이썬과 MySQL이 설치된 컴퓨터라는 전제하에,

각 OS 환경에서 명령프롬프트/터미널을 실행하고 pymysql과 sqlalchemy 패키지(파이썬 라이브러리)를 설치한다.

 

윈도우) pip install pymysql  그리고 pip install sqlalchemy

맥) pip3 install pymysql 그리고 pip3 install sqlalchemy

 

 

 

#2. Pymysql로 MySQL 접속:

import pymysql

 

HOSTNAME ='localhost'
PORT = 3306
USERNAME= 'root'
PASSWORD='비밀번호'
DATABASE='접속할 데이터베이스명'
CHARSET='utf8'

dbcon=pymysql.connect(host=HOSTNAME, port=PORT, user=USERNAME, password=PASSWORD, db=DATABASE, charset=CHARSET)

cursor=dbcon.cursor() #MySQL에 접속

 

sql="insert into ~~ values( ~~ )"   #적용할 MySQL 명령어를 만들어서 sql 객체에 할당하면 됨
cursor.execute(sql)

 

dbcon.commit() #위에 작업한 내용 서버에 저장

 

 

 

#3. SqlAlchemy로 엔진을 만들어서 MySQL 접속:

import pymysql
from sqlalchemy import create_engine

import pandas as pd

 

HOSTNAME ='localhost'
PORT = 3306
USERNAME= 'root'
PASSWORD='비밀번호'
DATABASE='접속할 데이터베이스명'
CHARSET1='utf8' 
CHARSET2='utf-8'

 

con_str_fmt='mysql+mysqldb://{0}:{1}@{2}:{3}/{4}?charset={5}'

con_str=con_str_fmt.format(USERNAME,, PASSWORD, HOSTNAME, PORT, DATABASE, CHARSET1)

pymysql.install_as_MySQLdb()
import MySQLdb

 

engine=create_engine(con_str, encoding=CHARSET2) 
conn=engine.connect() #MySQL에 접속

 

sql="select ~~ from ~~" #MySQL 명령어로 데이터를 읽어오거나
df1=pd.read_sql(sql, con=conn)

 

df2=pd.read_sql_table('불러올 테이블명', index_col='인덱스로 삼을 컬럼이름명(지정해도 되고 안해도 됨)', con=conn) #데이터베이스 내 테이블 이름을 지정해서 데이터를 불러올 수 있음

 

conn.close() #데이터베이스 접속 해제

댓글