본문 바로가기

Development/Javascript | Node.js

Node.js + Oracle

Node.js 에서 오라클을 연결해야할 일이 생겼다.

해서 테스트 해본 환경은 맥과 우분투 리눅스 였다.


원리는 같으나 방식은 약간 다르다. 이 포스팅은 우분투를 기준으로 (18.04) 작성합니다.


방식은 여러가지이나 zip 파일을 풀고 심볼릭링크로 연결하는 방식 기준에 대해 설명합니다.


먼저 이 작업을 진행하기에 참고한 링크(클릭하시면 이동합니다.) 입니다. 


작업에 대한 순서는 다음과 같습니다. 

  1. OCI ( Instant Oracle Clinet ) 다운로드. ( OS 에 맞게 다운로드 하세요. ) [다운로드 경로]
  2. Unzip
  3. 라이브러리 링크
  4. 연결 설정

1. OCI

찾은김에 귀찮아서 로컬에서 다운로드 받고 FTP 로 업로드 함. 

먼저 다운로드 받은 OCI 를 /opt/oracle 디렉토리를 생성하여 옮겨놓음.


2. Unzip

따로 압축을 풀어서 한다기보다는 FTP 로 업로드한 파일들을 지정된 위치로 이동하는 작업이었음.



3. 라이브러리 링크

이제부터는 다운로드받은 라이브러리들을 링크하는 작업이다.

ln -s /opt/oracle/instantclient/libclntsh.so.12.1 /opt/oracle/instantclient/libclntsh.so

ln -s /opt/oracle/instantclient_12_2/libclntsh.so.12.1 /opt/oracle/instantclient_12_2/libclntsh.so

sudo ldconfig

sudo sh -c "echo /opt/oracle/instantclient_12_1 > /etc/ld.so.conf.d/oracle-instantclient.conf"

export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2:$LD_LIBRARY_PATH


위와 같이 하면 모두 연결설정이 마무리 되어있을텐데 위 작업중 만일 다음과 같은 에러가 발생했다면


libaio 라이브러리가 설치되어있지 않을 확률이 높다.

상황에 따라 다르나 나는 libaio.so.1 이라고 했으니 다음과 같이 실행해준다.

sudo apt-get install libaio1 libaio-dev


위와 같이 해서 나는 정상적으로 Node.js 환경에서 오라클 데이터베이스로 연결하였다.