Maria에서 Oracle에 연결하는 상황에서 "libsqora.so .11.1: file not found"라는 오류 메시지가 나타납니다.DB
문제를 해결하는 데 어려움을 겪고 있습니다.
OS는 CentOS이고, MariaDB 버전은 10.4입니다.
Unix ODBC는 odbc.ini 및 odbcinit.ini로 올바르게 설치되고 구성됩니다.
'isql -vorcl scott tiger'를 사용하여 연결을 시도하면 성공적으로 연결됩니다.
그러나 MariaDB에서 동일한 방법을 시도하면 다음 오류가 발생합니다.
Maria02 [test]> CREATE TABLE ora_emp -> ENGINE=CONNECT -> TABLE_TYPE=ODBC TABNAME='EMP' CONNECTION='DSN=orcl;UID=scott;PWD=tiger'; ERROR 1105 (HY000): SQLDriverConnect: [unixODBC][Driver Manager]Can't open lib '/home/oracle/instantclient_11_2/libsqora.so.11.1': file not found
LD_LIBRARY_PATH 환경변수는 /home/oracle/instantclient_11_2로 설정됩니다.
[root@localhost instantclient_11_2]# ldd libsqora.so.11.1
linux-vdso.so.1 => (0x00007fff0d2b5000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fb5a7c54000)
libm.so.6 => /lib64/libm.so.6 (0x00007fb5a7952000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb5a7736000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fb5a751c000)
libclntsh.so.11.1 => /home/oracle/instantclient_11_2/libclntsh.so.11.1 (0x00007fb5a4bad000)
libodbcinst.so.1 => /lib64/libodbcinst.so.1 (0x00007fb5a499b000)
libc.so.6 => /lib64/libc.so.6 (0x00007fb5a45cd000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb5a7e58000)
libnnz11.so => /home/oracle/instantclient_11_2/libnnz11.so (0x00007fb5a4200000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007fb5a3ffe000)
libltdl.so.7 => /lib64/libltdl.so.7 (0x00007fb5a3df4000)
위의 내용은 'ldd' 명령의 결과이며, 문제는 없는 것 같습니다.
'/home/ oracle/ instantclient_11_2/libsqora.so .11.1' 파일이 분명히 있습니다.
이 문제를 해결하는데 어떤 도움이라도 주시면 대단히 감사하겠습니다.
감사해요.
$ rpm -qa unixODBC*
unixODBC-2.3.1-14.el7.x86_64
unixODBC-devel-2.3.1-14.el7.x86_64
$ export ORACLE_HOME=/home/oracle/instantclient_11_2
$ export LD_LIBRARY_PATH=$ORACLE_HOME
$ vi /etc/odbcinst.ini
[Oracle 11g ODBC driver]
Description = Oracle ODBC driver for Oracle 11g
Driver = /home/oracle/instantclient_11_2/libsqora.so.11.1
$ vi /etc/odbc.ini
[orcl]
Driver = Oracle 11g ODBC driver
ServerName = //192.168.80.1:1521/oracle
DSN = orcl
UserName = scott
Password = tiger
$ isql -v orcl scott tiger
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
$ mysql -uroot
MariaDB [(none)]> install plugin connect soname 'ha_connect.so';
MariaDB [(none)]> use test;
MariaDB [test]> CREATE TABLE ora_emp ENGINE=CONNECT TABLE_TYPE=ODBC TABNAME='EMP' CONNECTION='DSN=orcl;UID=scott;PWD=tiger';
ERROR 1105 (HY000): SQLDriverConnect: [unixODBC][Driver Manager]Can't open lib '/home/oracle/instantclient_11_2/libsqora.so.11.1' : file not found
MariaDB는 보통 CentOS(및 기타)에서 systemd에 의해 시작되며 기본 systemd 서비스는 Protect를 갖습니다.Home=yes로 인해 서비스에서 /home 파일에 액세스할 수 없습니다.
추천:
mv /home/oracle /usr/local
경로를 다음으로 바꿉니다./usr/local/oracle/instantclient_11_2
그LD_LIBRARY_PATH
또한 systemd 서비스를 위해 존재해야 합니다.
systemctl edit mariadb.service
다음 파일에 추가합니다.
[Service]
Environment="LD_LIBRARY_PATH=/usr/local/oracle/instantclient_11_2"
언급URL : https://stackoverflow.com/questions/76633992/the-error-message-libsqora-so-11-1-file-not-found-in-the-context-of-connectin
'source' 카테고리의 다른 글
asp.net vnext에서 wwwroot란 무엇입니까? (0) | 2023.09.24 |
---|---|
각도-소재 날짜/시간 선택기 구성요소? (0) | 2023.09.24 |
콘솔에 설치 오류가 표시됨: INSTALL FAIL CONCERTING PROWDER 설치 (0) | 2023.09.24 |
CSV 파일을 Pandas DataFrame으로 가져오기 (0) | 2023.09.24 |
배치 파일/Powershell 스크립트를 실행하여 재생 장치 (0) | 2023.09.24 |