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를 사용하는 경우는 클라우드에 접속하여 직접 허용 설정을 해줘야 함
반응형