본문 바로가기

MySQL/Python

MySQLdb를 사용해보자!!

안녕하세요 엔시아입니다.

휴~ 오늘..이 아니라 요즘 저에게 많은 일이 생기고 있습니다.

물런 다들 반성하는 일들 뿐이지요~ 사실 연말 쯔~음 되면 반성들 많이 하잖아요~
쪼금 불행할 뿐이지만... 사실은 제가 게을러서 그렇지요 ^^ㅋ

그래서...

초심으로 돌아가자는 의미로 몇가지 일들을 다짐하게 되었습니다. ^^;;
좀더 부지런해지자!! 는게 첫번째 과제인듯한네요
앞으로 자주 포스팅을 통해서 찾아뵙도록 하겠습니다.

그럼 본론으로 들어가 볼까요 ^^

먼저 Mysql 에서는 아시다 싶이 5.0 이상 버전에서 stored procedures(이하 프로시저)를 지원합니다.

사실 Mysql은 지금에서야 겨우 프로시저를 사용하게 되었지만 그 이전 까지만 해도 대다수의 Mysql DBA들이
Linux환경에서 shell을 이용한 프로그램을 많이 만들었습니다.

그러다가 등장한것이 Script 프로그램이고 이것의 대표적인것이 python이 아닐까 추측합니다. (단지 제 생각일 뿐이죠 ㅋㅋ)

자~ 여기까지는 서론이였구요

대충 요약을 하자만 4.x 이하의 Mysql을 사용하는 회사 혹은 개인은 프로시저를 사용할려면 5.x으로 migration을 진행하던지.. python을 통한 cursor script를 작성하던지 둘중 하나를 택해야합니다.

그럼 먼저 카테고리 특성상 python을 봐야겠지요 (흠.. 넘 돌려서 이야기하나요 ㅋ? ㅡ_-;;)

우선 Mysql과 python만 설치한다고 해서 python을 이용한 DB control을 바로 할 수 없습니다.
Python for mysql API 즉, python에서 mysql을 컨트롤하는 별도의 모듈을 깔아주셔야합니다.

설정하는 방법은 아래와 같이 매우 심플하게 이루어집니다.

1. 먼저 MySQLdb api를 다운로드 한다.
링크 : http://sourceforge.net/projects/mysql-python

2. 다운로드 한 파일을 Linux서버에 올리고 build를 합니다. 
shell> python setup.py build

3. 설치과정은 build를 했을때 외부에서 파일을 다운로드를 하는 방식을 사용합니다. 보안이 강력한 서버의 경우 일반적으로 외부와 연결이 안되는 경우가 종종있습니다. 그렬경우 출력되는 URL을 인터넷이 되는 웹브라우저에 입력하면 파일이 다운이 되죠 이파일을 다시 Linux에 올리고 build를 진행합니다.

4. build 후 install을 진행해야겟지요
shell> python setup.py install

5. lunux의 경우 여러 응용프로그램이 서로간의 경로를 상대경로로 사용하는 경우가 대부분입니다.
이러한 경우에 Error를 뱉기 때문에 별도의 경로를 지정해 주어야합니다.
아래는 root의 경로에 MySQLdb가 사용할 mysql의 라이브러리 경로를 직접 지정 해주는 과정입니다.
  - 경로설정을 편집한다.
    shell> vi /root/.bash_profile

  - 파일을 열어 아래와 같은 내역을 추가한다.

PATH=$PATH:$HOME/bin
BASH_ENV=$HOME/.bashrc
USERNAME=""
LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql 

export USERNAME BASH_ENV PATH LD_LIBRARY_PATH

  - Linux에서는 경로를 설정해주고 해당 경로를 적용해주어야합니다.
아래의 명령어로 활성화를 시켜줄 수 있지요 ^^
  shell> source ~/.bash_profile

 6. 자~ 이제 온료 되었습니다. 테스트를 하기위해서는 아래와 같이 python을 shell에서 시작한 후에
MySQLdb를 import함으로써 모든 것이 완료 됩니다.
Err가 출력되면 대부분이 mysql의 라이브러리를 찾지 못하는 경우이므로 5번의 항목을 다시 한번 읽어보시길 바랍니다. ^^;

  shell> python
  >> import MySQLdb

  - 위와 같은 명령을 실행하였을때 아무런 메시지가 출력이 되지 않으면 된다.

 

흠.. 쓰다보니 매우 긴 포스팅이 되어버렸네요 ^^;;


그럼 좋은 하루 되시구요 담에 또 뵙겠습니다.


 

'MySQL > Python' 카테고리의 다른 글

Python 그 위대함....  (3) 2009.03.26