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

+ Recent posts