Can't Open Lib 'Odbc Driver 13 for SQL Server'? Sym Linking Issue

Can't open lib 'ODBC Driver 13 for SQL Server'? Sym linking issue?

Running:

odbcinst -j

It yielded:

unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /Users/emehex/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

Instead of copying the files to the /etc/ directory (not sure why unixODBC thought they were there) I created a symbolic link to each file:

sudo ln -s /usr/local/etc/odbcinst.ini /etc/odbcinst.ini
sudo ln -s /usr/local/etc/odbc.ini /etc/odbc.ini

This solved the problem.

ODBC Driver 13 for SQL Server can't open lib on pyodbc while connecting on AWS E2 ubuntu instance

As per nehaljwani's GitHub comment, this issue is related to libgcc mismatch. The official page suggests the minimum version of libgcc required for symbol v3.4.21 is v5.1.0.

GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9

Here are two suggestions how to solve it:

  • Update libgcc to >= 5.1.0 (recommended) by executing conda update libgcc. E.g.

    $ conda update libgcc
    ...
    The following packages will be UPDATED:
    libgcc: 4.8.5-2 --> 5.2.0-0

    Proceed ([y]/n)? y

    $ conda list gcc
    # packages in environment at /conda/envs/test:
    #
    libgcc 5.2.0 0
    (test) root@75eb43ff7f79:~$ readelf --version-info /conda/envs/test/lib/libstdc++.so | grep -Po '(?<=GLIBCXX_)([\d.]*)' | sort -Vr | head -1
    3.4.21
  • LD_PRELOAD trick (hacky)

    (test) root@75eb43ff7f79:~$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 python test.py
    Reading data from table
    Microsoft SQL Server vNext (CTP2.0) - 14.0.500.272 (X64)
    Apr 13 2017 11:44:40
    Copyright (C) 2017 Microsoft Corporation. All rights reserved.
    Developer Edition (64-bit) on Linux (Ubuntu 16.04.2 LTS)

Troubleshooting

  • Make sure the configured driver file (/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.1.0) configured in your INI file (see: odbcinst -j) exist and has read and executable permissions (O_RDONLY|O_CLOEXEC)
  • See: Installing the Microsoft ODBC Driver for SQL Server on Linux and macOS.

Can't open lib ODBC Driver 17 OSX

If anyone ever gets the same problem as I have, you have to use the solution found at:

Can't open lib 'ODBC Driver 13 for SQL Server'? Sym linking issue?



Related Topics



Leave a reply



Submit