django.db.utils.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library:
"libclntsh.so: cannot open shared object file: No such file or directory".
See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help
파이썬에서 오라클에 접속하기 위해선 cx_oracle 패키지를 사용하는데, cx_oracle에선 오라클의 libclntsh.so라는 파일을 사용한다.
리눅스에서는 오라클의 해당 패키지를 다운로드 한 후 패스를 설정해 주면 된다.
1. 패키지 다운로드
https://www.oracle.com/database/technologies/instant-client/downloads.html
오라클 공식 사이트에서 자신의 서버에 맞는 패키지를 다운로드 하면 된다. (혹시 중간에 가입하라고 나오면 무시하고 진행할 수 있다.)
나는 linux x86-64 -> (최신버전) instantclient-basic-linux.x64-21.6.0.0.0dbru.zip을 다운로드 했다.
$ wget https://download.oracle.com/otn_software/linux/instantclient/216000/instantclient-basic-linux.x64-21.6.0.0.0dbru.zip
2. 적당한 곳에 압축 풀기
opt oracle이라는 폴더를 하나 생성후 해당 폴더로 옮겨서 압축을 푼다
1
2
3
4
|
mkdir -p /opt/oracle
mv instantclient-basic-linux.x64-21.6.0.0.0dbru.zip /opt/oracle
cd /opt/oracle
unzip instantclient-basic-linux.x64-21.6.0.0.0dbru.zip
|
cs |
3. 필요 패키지 설치 및 경로 설정
libaio 패키지 설치
$ sudo yum install libaio
bashrc에 경로를 지정해 준다.
vi 로 bashrc로 연후 export 부분을 추가한다
1
2
|
$ sudo vi ~/.bashrc
export LD_LIBRARY_PATH=/opt/oracle/instantclient_21_6:$LD_LIBRARY_PATH
|
cs |
오라클 접속에 필요한 기본 폴더 생성
$ mkdir -p /opt/oracle/instantclient_21_6/network/admin
LD_LIBRARY_PATH 경로 인식시키기
1
2
3
|
$ sudo vi /etc/ld.so.conf.d/oracle_instant_client.conf
/opt/oracle/instantclient_21_6
|
cs |
ldconfig 적용
$ sudo ldconfig -v
끝!
'web > Django' 카테고리의 다른 글
Django migrate model 칼럼 추가시 null=True는 가급적 쓰지 말자 (0) | 2022.05.03 |
---|---|
pytest 시 여러개의 디비 사용하기 (0) | 2021.10.08 |
raw query + group by 그리고 다른 디비에 접속 (0) | 2021.09.16 |
Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'. - django 3.2 version up (2) | 2021.05.10 |
How Django process a request (0) | 2021.05.10 |