Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Linker errors with libmsodbcsql-13.0.so.0.0 preventing pyODBC to MS SQL connection. CentOS 7

I am trying to connect from a python app with pyodbc to a MS SQL server. I have pyodbc and unixODBC installed and I tried to install the MS driver for linux. I think the issue is that the MS driver has missing dependencies but as near as I can tell the dependencies are installed. Because the Microsoft driver was not install-able through yum i had to wget and run the install script. So there Im sure there is some manual work I have to do to get the links missing below to resolve. I am not sure how to do this as I am new to this on Linux. I have included my config files also just in case.

When I run...

 ldd /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0

I get the following...

/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0)

/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0)

linux-vdso.so.1 =>  (0x00007fff22b27000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f03de43f000)
libodbcinst.so.2 => /lib64/libodbcinst.so.2 (0x00007f03de22d000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f03de027000)
libgss.so.3 => not found
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f03ddd42000)
libcrypto.so.1.0.0 => not found
libssl.so.1.0.0 => not found
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f03dda39000)
....(THE REST ARE FOUND)

odbcinst.ini odbc.ini

Any help or suggestions are welcome. Thank You!

like image 847
silicon mode Avatar asked Feb 13 '16 21:02

silicon mode


1 Answers

I remember I had this issue too but it was more than one year ago and I don't have access to that server anymore.

As far as I can remember it was a version mismatch. If you see your ldd output they're looking for libgss.so.3, libcrypto.so.1.0.0, etc. Maybe you have different version of these library installed on your system.

By looking my installation notes it looks like I fixed the issue by creating (soft) links "pointing" the libraries I had on my system. And - of course - I gave these links the names msodbc was looking for. Yes... a little bit "rude" but it worked for me.

like image 124
mauro Avatar answered Sep 18 '22 13:09

mauro