0

我使用以下命令进入了一个全新的 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

4

1 回答 1

1

通过在测试连接之前添加以下命令找到解决方案:

apt-get install -y libgssapi-krb5-2
apt-get install -y libkrb5-3
apt-get install -y libatomic1
于 2021-10-08T05:36:43.003 回答