Django + MySQL 사용시 MySQL connect library 설치 방법
Django는 2.0 이후 버전부터 default library로 mysqlclient를 사용한다. 하지만 이 버전 사용시 mysql의 라이브러리를 참조해야 하는데, 해당 정보를 가져오지 못해 에러가 나는 경우가 발생한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | root@localhost ~ $ pip install mysqlclient Collecting mysqlclient Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f73b141fdd8>: Failed to establish a new connection: [Errno -2] 이름 혹은 서비스를 알 수 없습니다',)': /simple/mysqlclient/ Installing collected packages: mysqlclient Successfully installed mysqlclient-1.3.12 kimgn@localhost ~ $ pip install mysql-python Collecting mysql-python Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb16050e400>: Failed to establish a new connection: [Errno -2] 이름 혹은 서비스를 알 수 없습니다',)': /simple/mysql-python/ Using cached MySQL-python-1.2.5.zip Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-build-xfi5tabw/mysql-python/setup.py", line 13, in <module> from setup_posix import get_config File "/tmp/pip-build-xfi5tabw/mysql-python/setup_posix.py", line 2, in <module> from ConfigParser import SafeConfigParser ModuleNotFoundError: No module named 'ConfigParser' ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-xfi5tabw/mysql-python/ root@localhost ~ $ | cs |
이 현상으로 인해 ipython을 통해 MySQLdb를 임포트해본 결과 임포트가 정상적으로 되지 않는다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | In [2]: import MySQLdb --------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-2-dd22983d5391> in <module>() ----> 1 import MySQLdb ~/anaconda3/lib/python3.6/site-packages/MySQLdb/__init__.py in <module>() 17 from MySQLdb.release import __version__, version_info, __author__ 18 ---> 19 import _mysql 20 21 if version_info != _mysql.version_info: ImportError: libmysqlclient.so.20: cannot open shared object file: No such file or directory 해당 에러를 해결하기 위해서는 플러그인 라이브러리를 가져오기 위한 변수를 export 해주어야 한다.(참고 블로그 : http://k-flow.tistory.com/93) vi ~/.bashrc 혹은 vi /etc/profile.d/임의의sh파일 아래 문구 추가 export LD_LIBRARY_PATH="MSQL라이브러리경로:$LD_LIBRARY_PATH" | cs |
crontab등의 수행시 반영하고 싶을 경우는 crontab -e 후 해당 내용 반영
이후 수행하면 정상적으로 반영됨을 확인할 수 있다.
mysql_config 파일을 찾지 못해 설치 못되는 경우도 발생한다.
위와 같은 경우에는 PATH에 해당 경로를 삽입해주면 된다.
export PATH="....MSQL바이너리경로:$LD_LIBRARY_PATH"
'IT etc. > Python OR Django' 카테고리의 다른 글
MySQL에 무한 인서트 하기 (0) | 2018.01.03 |
---|