본문 바로가기

06. Programming/iii.Python 2.x~3.x

python + MySQLdb import 혹은 설치방법


흠...일단 oracle 조합만 쓰다보니 rpm으로 쉽게쉽게 설치를 하다가 이번에 mysql에서 사용할일이 있어서 설치를 해보았습니다.

각설하고 결론부터 말씀 드리자면..
mysql 자체가 컴파일이 이상하게 되었다거나, 정확한 옵션을 모를경우에는 아싸리 mysql을 재 설치하는게 좋습니다. (재설치가 정신건강에 이롭습니다)

========== 환경
CentOS 5.5 x64 + python 2.4.3  + Mysql 5.0.51 + MySQL-python-1.2.3

MySQL-python-1.2.3 컴파일 과정
1. 다운로드 받고 (http://sourceforge.net/projects/mysql-python/files/mysql-python/) 압축 푸는 과정은 생략

2. 최초 setuptools가 필요합니다.
   python ez_setup.py 를 통해서 간단하게 설치 되어집니다.

3. site.cfg 수정이 필요합니다.
   저는 여기서 삽질했습니다. mysql을 static하게 컴파일을 했었더니 라이브러를 못찾는 경우가 발생합니다. 원인을 찾아볼려고 했지만 LD_LIBRARY_PATH 혹은 /etc/ld.so.conf 를 수정해도 원인 불명이였습니다.
   mysql 재 컴파일하니 되네요...-_-

 [options]
# embedded: link against the embedded server library
# threadsafe: use the threadsafe client
# static: link against a static library (probably required for embedded)
embedded = False #이거 뭘까요? 서버 라이브러리 링크? 링크되어진경우인가?
threadsafe = True #mysql 컴파일시 --enable-thread-safe-client 포함되어져 있을경우 입니다.
static = False #동적 라이브러리로 컴파일할경우에는 False입니다

그리고 mysql_config를 수정합니다.
RPM으로 설치하신분이라면 수정할 필요가 없습니다.

아래 레지스트리키 어쩌구 하는데...이건 windows 사용자용

맞추시고...
export LD_LIBRARY_PATH=/data/mysql/lib/mysql #mysql 라이브러리 경로
해줍니다.

그 후
python setup.py build
python setup.py install 하면 되어집니다.

수행 후 결과
root@localhost MySQL-python-1.2.3]# python
Python 2.4.3 (#1, Sep  3 2009, 15:37:37)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
/usr/lib64/python2.4/site-packages/MySQL_python-1.2.3-py2.4-linux-x86_64.egg/_mysql.py:3: UserWarning:
 Module _mysql was already imported from /usr/lib64/python2.4/site-packages/MySQL_python-1.2.3-py2.4-l
inux-x86_64.egg/_mysql.pyc, but /root/c/MySQL-python-1.2.3 is being added to sys.path

정상적으로 import가 되어지는군요...근데 저 Warning 메세지는 무엇이란 말인가?

뭐 결론은 mysql에 있었던것 같습니다..ㅠㅠ;