我使用以下命令进入了一个全新的 debian 10 环境
docker run -it --entrypoint /bin/bash debian:10
在容器内,我正在安装各种实用程序和工具:
apt-get update
apt-get install -y odbcinst1debian2 libodbc1 odbcinst unixodbc wget alien
然后在 /opt 目录中,我正在安装 rpm 文件最新的 dremio odbc 驱动程序,使用:
cd opt
wget https://download.dremio.com/odbc-driver/1.5.3.1000_2/dremio-odbc-1.5.3.1000-2.x86_64.rpm
在此之后,我使用外星人将 rpm 转换为 deb,然后使用以下命令安装驱动程序:
alien dremio-odbc-1.5.3.1000-2.x86_64.rpm
dpkg -i dremio-odbc_1.5.3.1000-2_amd64.deb
输出 -
Selecting previously unselected package dremio-odbc.
(Reading database ... 18427 files and directories currently installed.)
Preparing to unpack dremio-odbc_1.5.3.1000-2_amd64.deb ...
Unpacking dremio-odbc (1.5.3.1000-2) ...
Setting up dremio-odbc (1.5.3.1000-2) ...
我可以使用以下命令确认安装:
root@580b59f527a2:/opt# find / -name *libdrillodbc_sb64.so*
/opt/dremio-odbc/lib64/libdrillodbc_sb64.so
现在为了使用 DSN 测试连接,我正在修改 /etc/odbcinst.ini 和 /etc/odbc.ini 文件,如下所示:
/etc/odbcinst.ini
[DremioODBC]
Description=Dremio ODBC Driver(64-bit)
Driver=/opt/dremio-odbc/lib64/libdrillodbc_sb64.so
UsageCount=1
/etc/odbc.ini
[ODBC Data Sources]
DremioODBC=Dremio ODBC Driver 64-bit
[DremioODBC]
Description=Dremio ODBC Driver (64-bit) DSN
Driver=/opt/dremio-odbc/lib64/libdrillodbc_sb64.so
ConnectionType=Direct
HOST=[host]
PORT=[port]
AuthenticationType=Plain
UID=[userid]
PWD=[password]
Catalog=DREMIO
现在在测试连接时出现以下错误:
root@580b59f527a2:/opt# isql -v DremioODBC
[01000][unixODBC][Driver Manager]Can't open lib '/opt/dremio-odbc/lib64/libdrillodbc_sb64.so' : file not found
[ISQL]ERROR: Could not SQLConnect
即使存在 libdrillodbc_sb64.so 文件,我也无法建立连接。
我还尝试授予 libdrillodbc_sb64.so 权限,但仍然再次出现相同的错误。
ldd 命令给出以下输出:
root@580b59f527a2:/opt/dremio-odbc/lib64# ldd /opt/dremio-odbc/lib64/libdrillodbc_sb64.so
linux-vdso.so.1 (0x00007fff02de3000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f710fb22000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f710fb1d000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f710fafc000)
libgssapi_krb5.so.2 => not found
libkrb5support.so.0 => not found
libkrb5.so.3 => not found
libk5crypto.so.3 => not found
libatomic.so.1 => /usr/lib/x86_64-linux-gnu/libatomic.so.1 (0x00007f710faf0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f710f96d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f710f953000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f710f792000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7112c0f000)
ODBC 版本:
root@580b59f527a2:/opt# odbcinst -j
unixODBC 2.3.6
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
任何人都可以让我知道我是否缺少任何东西。
我已经提到了https://community.dremio.com/t/error-install-odbc-driver-on-ubuntu-18/4655