사전 요구사항

아래 내용들이 사전에 설정된 상태에서 Python과 MySQL 연동을 설명합니다.

MySQL DB와 연동을 위한 여러 모듈이 있습니다. 본 문서에서는 Connector/Python 모듈을 이용하는 방법을 설명합니다.

 

Connector/Python 설치

pip install mysql-connector-python

 

Connector/Python 으로 MySQL 접속

connect()  생성자는 MySQL 서버에 대한 연결을 생성하고 MySQLConnection객체를 반환합니다.

다음 예에서는 MySQL 서버에 연결하는 방법을 보여줍니다.

try ~ except문을 사용하여 DB 접속 오류를 처리하고,  Error을 사용하여 오류를 catch 합니다.

import mysql.connector
from mysql.connector import errorcode

try:
  cnx = mysql.connector.connect(user='pymysql', password='pymysql123',
	                          host='127.0.0.1',
       	                      database='pymysqldb')
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with your user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cnx.close()

 

Inserting Data Using Connector/Python

데이터 삽입이나 업데이트는 커서라는 핸들러 구조를 사용하여 수행합니다. InnoDB와 같은 트랜잭션 스토리지 엔진을 사용하는 경우, DML(INSERT, UPDATE, DELETE) 명령문 후에 데이터를 커밋 해야 합니다 . 

이 예에서는 새 데이터를 삽입하는 방법을 보여줍니다. 두 번째는 새로 생성된 첫 번째 기본 키INSERT 의 값에 따라 달라집니다 . 이 예에서는 확장 형식을 사용하는 방법도 보여줍니다. 이 작업은 내일부터 급여가 50000으로 설정된 새 직원을 추가하는 것입니다.

 

 

 

 

1. MySQL 설정

- MySQL 설치 : Ver 8.0.32

- schema 생성 : pymysqldb

 create database pymysqldb default character set utf8mb4 collate utf8mb4_bin;

- 계정, 권한 생성 : pymysql

-- 계정생성
create user pymysql identified by 'pymysql123';
-- 권한 부여
grant all on pymysqldb.* to pymysql;

- 테이블 생성 : 

 

* 테이블 layout

Entity/Table Name Entity/Table Physical_Name Definition 주제영역
응용구분 업무명 영문명 엔터티개수

 

파이썬 자체에는 MySQL을 인식하는 기능이 없습니다. 파이썬 코드에서 MySQL을 활용하기 위해 외부 라이브러리인 pymysql을 설치해야합니다.

 

pymysql 모듈 사용

 

1. pymysql 모듈 설치

pip install pymysql

 

2.   pymysql 임포트

import pymysql

3. 데이터베이스와 연동

pymysql을 임포트한 후 pymysql.connect()로 데이터베이스와 연동 하고 connectoin 객체를 conn 에 할당합니다.

import pymysql

conn = pymysql.connect(host='127.0.0.1', user='pymysql', password='pymysql123', db='pymysqldb', charset='utf8mb4')

 

 pymysql.connect(host=서버IP주소, user=사용자, passoword=암호, db=데이터베이스, charset=문자세트)

 

② 커서(cursor)는 데이터베이스에 SQL 문을 실행하거나 실행된 결과를 돌려받는 통로로 생각하면 됩니다. ① 에서 연결한 연결자에 커서를 만들어야 합니다. cur라는 변수를 커서로 사용하겠습니다.

 

  

+ Recent posts