
/etc/odbcinst.ini
다음 파일이 있습니다
[root@]# cat /etc/odbcinst.ini
[FreeTDS]
Description=FreeTDS odbc driver
#Driver=/usr/lib/libtdsodbc.so.0
Driver=/usr/lib64/libtdsodbc.so.0
UsageCount=1
64비트 및 32비트용으로 컴파일된 애플리케이션이 있습니다.
[root@]# ldd prog_32 | grep odbc
libodbc.so.2 => /lib/libodbc.so.2 (0xf7563000)
[root@]# ldd prog_64 | grep odbc
libodbc.so.2 => /lib64/libodbc.so.2 (0x00007f6087202000)
눈치채셨겠지만 odbcinst.ini
드라이버 파일에는 2개의 항목이 있습니다. 하나는 32비트용이고 다른 하나는 64비트용입니다. 문제는 64비트용으로 컴파일된 프로그램을 실행하고 드라이버가 32비트이거나 그 반대인 경우 실행 시 프로그램이 오류와 함께 실패한다는 것입니다.
OTL error message = [unixODBC][Driver Manager]Can't open lib '/usr/lib/libtdsodbc.so.0' : file not found
odbcinst.ini
그래서 다음 번에 이런 일이 일어날 때까지 드라이버 항목을 교체하러 갔는데 , 이는 꽤 자주 발생합니다.
구성 파일의 항목을 주석 처리하지 않고 64비트 응용 프로그램에 64비트 드라이버를 사용하고 32비트 응용 프로그램에 32비트 드라이버를 사용할 수 있는 방법이 있습니까?
답변1
문득 이런 생각이 들었습니다. 두 번째 항목을 추가해 주실 수 있나요 "Driver64"
?
/etc.odbcinst.ini에 있는 구성 파일의 해당 섹션은 다음과 같습니다.
cat /etc/odbcinst.ini
[TDSdriver]
Description=only MSSQL, not for Sybase
Driver64=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup64=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
UsageCount=1
CPTimeout=5
CPReuse=
하지만 현재 내 설정이 실제로 작동하지 않는다는 점을 인정해야 합니다. (하지만 예전에는 작동했습니다. 이러한 문제에 대한 많은 세부 정보를 잊어버렸습니다.)