Python Web Framework/Django, Flask

[Django MySQL] Python으로 DB에 접속하기

new_challenge 2020. 2. 8. 16:58
반응형

아래 포스팅은 python을 사용하여

기존 존재하는 db에 접근 및 데이터를 추출하는 

튜토리얼 입니다

 

 

 

 

 

1. 필요한 라이브러리 설치

$ pip install pymysql

- pymysql이라는 라이브러리를 사용하여 기존 데이터 베이스에 접근 할 예정

 

 

 

2. 데이터 베이스 접속 및 필요한 데이터 추출

import pymysql

- 라이브러리 import

 

 

#필요한 기본 DB 정보
host = "" #접속할 db의 host명
user = "" #접속할 db의 user명
pw = "" #접속할 db의 password
db = "" #접속할 db의 table명 (실제 데이터가 추출되는 table)

- 접속 할 때 사용되는 기본 DB이 정보

 

#DB에 접속
conn = pymysql.connect( host= host, user = user, password = pw, db = db)

- 실제 DB에 접근 ( pymysql.connect() )

 

#실제 사용 될 sql쿼리 문
sql = "SELECT * FROM [테이블이름] LIMIT 10"

- DB에 요청 할 sql쿼리 정의

 

#sql문 실행 / 데이터 받기
curs = conn.cusor()
curs.execute(sql)

data = curs.fetchall()

- DB에 쿼리 요청 밑 데이터 받기

 

#db 접속 종료
curs.close()
conn.close()

- DB요청이 완료되면 DB의 접속을 해제한다

 

Full Code
import pymysql

#필요한 기본 DB 정보
host = "" #접속할 db의 host명
user = "" #접속할 db의 user명
pw = "" #접속할 db의 password
db = "" #접속할 db의 table명 (실제 데이터가 추출되는 table)


#DB에 접속
conn = pymysql.connect( host= host,
			user = user,
                        password = pw,
                        db = db)


#실제 사용 될 sql쿼리 문
sql = "SELECT * FROM [테이블이름] LIMIT 10"


#sql문 실행
curs = conn.cusor()
curs.execute(sql)


#데이터 받아오기
data = curs.fetchall()


#db 접속 종료
curs.close()
conn.close()

 

Trouble Shooting

DB 접속에러가 발생하면 대부분은 권한 문제인 경우가 많다

DB에 접속하려는 서버과 실제 DB의 서버가 다른 경우, DB가 위치하는 곳에서 접근 권한을 허용해주자

또 다른 이유 중 하나는 db 접근 포트 허용의 문제도 있다(기본 포트인 3306도 허용해주자)

클라우드 DB를 사용하는 경우는 클라우드에 접속하여 직접 허용 설정을 해줘야 함 

반응형