티스토리 뷰

 

 

에러 메시지:

resultMessage": "('01000', \"[01000] [unixODBC][Driver Manager]Can't open lib 'PostgreSQL Unicode(x64)' : file not found (0) (SQLDriverConnect)\")"

이 에러는 Python Flask 애플리케이션이 ODBC를 통해 PostgreSQL 데이터베이스에 연결하려 할 때 드라이버를 찾지 못해서 발생한 것입니다.


🔍 원인 요약

  • unixODBC는 PostgreSQL에 연결하기 위해 ODBC 드라이버를 사용하려고 하는데, 설정된 드라이버 'PostgreSQL Unicode(x64)'를 찾을 수 없습니다.
  • 드라이버가 설치되지 않았거나, odbcinst.ini 설정 파일에 정의되어 있지 않거나, 잘못된 경로를 가리키고 있을 수 있습니다.

✅ 해결 방법

1. PostgreSQL ODBC 드라이버 설치

리눅스에서는 다음 명령어로 드라이버 설치:

sudo apt-get update
sudo apt-get install odbc-postgresql

Red Hat 계열(RHEL, CentOS 등)에서는:

sudo yum install postgresql-odbc

2. ODBC 설정 파일 확인

/etc/odbcinst.ini에 드라이버가 정의되어 있는지 확인:

[PostgreSQL Unicode(x64)]
Description     = ODBC for PostgreSQL
Driver          = /usr/lib/x86_64-linux-gnu/odbc/psqlodbcw.so
Setup           = /usr/lib/x86_64-linux-gnu/odbc/libodbcpsqlS.so
  • Driver와 Setup 경로가 실제 파일과 일치하는지 확인.
  • 경로가 다르면 find나 locate 명령어로 드라이버 경로를 찾으세요:
find /usr -name "psqlodbcw.so"

3. 드라이버 이름 확인

코드에서 사용 중인 드라이버 이름이 설정과 일치해야 합니다.

예시: Python에서 사용하는 연결 문자열 (예: pyodbc)

import pyodbc

conn = pyodbc.connect(
    "DRIVER={PostgreSQL Unicode(x64)};SERVER=localhost;DATABASE=test;UID=user;PWD=password"
)
  • 여기서 DRIVER={PostgreSQL Unicode(x64)} 부분이 odbcinst.ini의 [PostgreSQL Unicode(x64)]와 정확히 일치해야 합니다.
  • 이름이 다르면 에러가 발생합니다.

🧪 테스트 방법

설치 및 설정 완료 후, 다음 명령어로 ODBC 연결을 테스트하세요:

isql -v testdsn user password

(DNS가 설정되어 있을 경우)


✅ 요약

항목 확인 사항

드라이버 설치 odbc-postgresql 설치 여부
odbcinst.ini [PostgreSQL Unicode(x64)] 정의 및 경로
연결 문자열 드라이버 이름이 정확히 일치하는지
파일 경로 드라이버 경로가 실제 존재하는지

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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 27 28 29 30 31
글 보관함