Dremio ODBC Driver error in ubuntu linux

Can you pls help me … getting error during ( Dremio ODBC Driver error in ubuntu linux )

error :

PHP Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Can’t open lib ‘Dremio ODBC Driver 64-bit’ : file not found, SQL state 01000 in SQLConnect in /var/www/html/test.php on line 42
Connection Failed

code :

$conn = odbc_connect(“DRIVER={Dremio ODBC Driver 64-bit};host=localhost:9047;AuthenticationType:Plain;Database=ds.slave_index”,“pravee”, “Praveen”);
//echo "test ".$conn;
if (!$conn)
{exit("Connection Failed: " . $conn);}

Did you use alien (or another tool) to convert the RPM package into a DEB package? It is possible then that your ODBC configuration is not updated automatically, and that you need to do it by hand, by modifying /etc/odbcinst.ini and /etc/odbc.ini, as instructed by unixODBC manual.

@laurent Hi, I’m pretty new to Dremio. I got the same error as above when trying to connect. I am using a Debian based system. Already converted the rpm to deb package using alien.

As you mentioned above the .ini files are not updated and in my case empty.
I could’t understand the odbc manuals and it doesn’t have an entry for dremio. Can you pls post the sample content of these files.

Thank you :slight_smile:

@arjun sample content of those files
odbc.ini
[Dremio]
Description=Dremio
Driver=/opt/dremio-odbc/lib64/libdrillodbc_sb64.so
ConnectionType=Direct
HOST=localhost
PORT=31010
ZKQuorum=[Zookeeper Quorum]
ZKClusterID=[Cluster ID]
AuthenticationType=Plain
UID=[USERNAME]
PWD=[PASSWORD]
DelegationUID=
KrbServiceName=dremio
KrbServiceHost=
AdvancedProperties=CastAnyToVarchar=true;HandshakeTimeout=5;QueryTimeout=180;TimestampTZDisplayTimezone=utc;NumberOfPrefetchBuffers=5;
Catalog=DREMIO
Schema=

odbcinst.ini
[Dremio]
Description=Dremio
Driver=/opt/dremio-odbc/lib64/libdrillodbc_sb64.so
UsageCount=1

You should also be able to find the templates for these files under /opt/dremio-odbc/conf

Thanks for the help… I fixed this error already…well I’m not sure ‘fixed’ is the right word :smile: …at least no errors…

Since I wasn’t able to get the DSN, I directlr gave the path of the driver file (something like this ‘/opt/dremio-odbc/lib64/libdrillodbc_sb64.so’) and it worked.

But I’ll try this now …will update soon…

UPDATE: Tried the above format Still the same error pops up. But the other method works. Will there be any possible issues from doing so?

Would you be able to share /etc/odbcinst.ini?

Ya, here it is…

Description=Dremio
Driver=/opt/dremio-odbc/lib64/libdrillodbc_sb64.so
UsageCount=1

Make sure you have a section defined for it. Usually your odbcinst.ini file looks like this:

[ODBC Drivers]
Dremio ODBC Driver 64-bit=Installed

[Dremio ODBC Driver 64-bit]
Description=Dremio
Driver=/opt/dremio-odbc/lib64/libdrillodbc_sb64.so
UsageCount=1

Hi. I am having the same issue, it seems to be a problem related to permissions. Running php-fcgi and getting the same error. Do I have to set-up an Environment variable?

Can you share the config files and error message?

/etc/odbcinst.ini:

[ODBC Drivers]
Dremio=Installed

[Dremio]
Description=Dremio ODBC Driver(64-bit)
Driver=/opt/dremio-odbc/lib64/libdrillodbc_sb64.so
UsageCount=1

/etc/odbc.ini

[Dremio]
Description=Dremio ODBC Driver (64-bit) DSN
Driver=/opt/dremio-odbc/lib64/libdrillodbc_sb64.so
# The DriverUnicodeEncoding setting is only used for SimbaDM
# When set to 1, SimbaDM runs in UTF-16 mode.
# When set to 2, SimbaDM runs in UTF-8 mode.
#DriverUnicodeEncoding=2

# Values for ConnectionType, AdvancedProperties, Catalog, Schema should be set here.
# If ConnectionType is Direct, include Host and Port. If ConnectionType is ZooKeeper, include ZKQuorum and ZKClusterID
# They can also be specified on the connection string.
# AuthenticationType: No authentication; Plain;
ConnectionType=Direct
HOST=192.168.1.53
PORT=31010
#ZKQuorum=[Zookeeper Quorum]
#ZKClusterID=[Cluster ID]
AuthenticationType=Plain
UID=apps
PWD=Vulcan00
#DelegationUID=
AdvancedProperties=CastAnyToVarchar=true;HandshakeTimeout=5;QueryTimeout=180;TimestampTZDisplayTimezone=utc;NumberOfPrefetchBuffers=5;
Catalog=DREMIO
Schema=
SSL=0
DisableHostVerification=0
DisableCertificateVerification=0
TrustedCerts=/opt/dremio-odbc/lib64/cacerts.pem
UseSystemTrustStore=0
# The key, “UseExactTLSProtocolVersion”, toggles between “Min_TLS” or “TLSProtocol”.
# UseExactTLSProtocolVersion=1 indicates that the driver should use the exact TLS Protocol version to communicate with the Dremio node.
# UseExactTLSProtocolVersion=0 indicates that the driver should use the minimum TLS Protocol version to communicate with the Dremio node.
UseExactTLSProtocolVersion=0
#Min_TLS=
#TLSProtocol=

php.fcgi

#!/bin/bash
# Shell Script To Run PHP5 using mod_fastcgi under Apache 2.x
# Tested under Red Hat Enterprise Linux / CentOS 5.x
### Set PATH ###
PHP_CGI=/opt/NetMake/v9/components/apache/cgi-bin/php-cgi
PHP_FCGI_CHILDREN=2
PHP_FCGI_MAX_REQUESTS=100
PHPRC="/opt/NetMake/v9/components/apache/conf/"
INFORMIXDIR="/opt/IBM/ifx/"
INFORMIXSQLHOSTS="/opt/IBM/ifx/etc/sqlhosts"
CLIENT_LOCALE=“en_US.utf8”
DB_LOCALE=“en_US.819”
INFORMIXSERVER=“demo_on”
ODBCINI="/etc/odbc.ini"
LD_LIBRARY_PATH="/opt/dremio-odbc/lib64/"
### no editing below ###
export PHPRC
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
export INFORMIXDIR
export INFORMIXSQLHOSTS
export CLIENT_LOCALE
export DB_LOCALE
export INFORMIXSERVER
export ODBCINI
export LD_LIBRARY_PATH
exec $PHP_CGI

I manage to connect trough isql.
i also manage to connect with this cli php script:

$conn = odbc_connect(“Driver={Dremio};host=192.168.1.53;Port=31010;AuthenticationType:Plain;Database=censo_2015”,“apps”, “xxxx”);
//echo "test ".$conn;
if (!$conn)
{exit("Connection Failed: " . $conn);}

But the problem raises in php-fcgi who complains:

odbc_connect(): SQL error: [unixODBC][Driver Manager]Can’t open lib ‘/opt/dremio-odbc/lib64/libdrillodbc_sb64.so’ : file not found, SQL state 01000 in SQLConnect

Thank you for your kind Responses!

If you manage to connect through isql and php cli, but not using php fcgi, it might be a FastCGI configuration. Maybe the configuration for FastCGI/PHP uses a chroot or doesn’t allow to calls to dlopen for security reason.