Linux and ODBC
Linux and ODBC
https://msdn.microsoft.com/library/hh568451(SQL.110).aspxhttps://msdn.microsoft.com/en-us/data/ff658532.aspx
https://msdn.microsoft.com/en-us/library/hh568451(v=sql.110).aspx
The ODBC driver for SQL Server allows native applications (C/C++) running on Linux to connect to SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, and Microsoft Azure SQL Database.
Installing the Driver Manager
Delete any driver manager packages installed on your computer before you install the unixODBC Driver Manager. Installing the unixODBC Driver Manager could cause a failure of an existing Driver Manager.
Using the Installation Script
Ensure you have the correct package by downloading from one of the following locations and selecting version 13.
Microsoft ODBC Driver 13 (Preview) and 11 for SQL Server - Red Hat LinuxMake sure that you have root permission.
Go to the directory where the Microsoft SQL Server ODBC Driver download
placed the file called msodbcsql-13.0.0.0.tar.gz
. Make sure
that you have the *.tar.gz
file that matches your version of
Linux. To extract the files, execute the following command:
tar xvzf msodbcsql-13.0.0.0.tar.gz
msodbcsql-13.0.0.0/ msodbcsql-13.0.0.0/lib64/ msodbcsql-13.0.0.0/lib64/libmsodbcsql-13.0.so.0.0 msodbcsql-13.0.0.0/lib64/msodbcsqlr13.rll msodbcsql-13.0.0.0/bin/ msodbcsql-13.0.0.0/bin/bcp-13.0.0.0 msodbcsql-13.0.0.0/bin/bcp.rll msodbcsql-13.0.0.0/bin/sqlcmd-13.0.0.0 msodbcsql-13.0.0.0/bin/BatchParserGrammar.dfa msodbcsql-13.0.0.0/bin/BatchParserGrammar.llr msodbcsql-13.0.0.0/bin/SQLCMD.rll msodbcsql-13.0.0.0/include/ msodbcsql-13.0.0.0/include/msodbcsql.h msodbcsql-13.0.0.0/install.sh msodbcsql-13.0.0.0/build_dm.sh msodbcsql-13.0.0.0/WARNING msodbcsql-13.0.0.0/docs/ msodbcsql-13.0.0.0/docs/en_US.tar.gz msodbcsql-13.0.0.0/LICENSE msodbcsql-13.0.0.0/README msodbcsql-13.0.0.0/INSTALL
Change to the msodbcsql-13.0.0.0.tar.gz
directory.
cd msodbcsql-13.0.0.0
There you should see a file called build_dm.sh
. You can run build_dm.sh
to install the unixODBC Driver Manager.
./build_dm.sh
Build unixODBC 2.3.1 DriverManager script Copyright Microsoft Corp. In order to use the Microsoft® ODBC Driver 13 for SQL Server®, the unixODBC DriverManager must be installed on your computer. unixODBC DriverManager is a third-party tool made available by the unixODBC Project. To assist you in the installation process, this script will attempt to download, properly configure, and build the unixODBC DriverManager from http://www.unixodbc.org/ for use with Microsoft® ODBC Driver 13 for SQL Server®. Alternatively, you can choose to download and configure unixODBC DriverManager from http://www.unixodbc.org/ yourself. Note: unixODBC DriverManager is licensed to you under the terms of an agreement between you and the unixODBC Project, not Microsoft. Microsoft does not guarantee the unixODBC DriverManager or grant any rights to you. Prior to downloading, you should review the license for unixODBC DriverManager at http://www.unixodbc.org/. The script is provided as a convenience to you as-is, without any express or implied warranties of any kind. Microsoft is not liable for any issues arising out of your use of the script. Enter 'YES' to have this script continue:
Enter the word 'YES' and hit Enter.
Verifying processor and operating system ................................... OK Verifying wget is installed ................................................ OK Verifying tar is installed ................................................. OK Verifying make is installed ................................................ OK Downloading unixODBC 2.3.1 DriverManager ................................... OK Unpacking unixODBC 2.3.1 DriverManager ..................................... OK Configuring unixODBC 2.3.1 DriverManager ................................... OK Building unixODBC 2.3.1 DriverManager ...................................... OK Build of the unixODBC 2.3.1 DriverManager complete. Run the command 'cd /tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1; make install' to install the driver manager. PLEASE NOTE THAT THIS WILL POTENTIALLY INSTALL THE NEW DRIVER MANAGER OVER ANY EXISTING UNIXODBC DRIVER MANAGER. IF YOU HAVE ANOTHER COPY OF UNIXODBC INSTALLED, THIS MAY POTENTIALLY OVERWRITE THAT COPY.
The next command to execute is:
cd /tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1; make install
Making install in extras make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/extras' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/extras' make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/extras' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/extras' Making install in log make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/log' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/log' make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/log' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/log' Making install in lst make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/lst' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/lst' make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/lst' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/lst' Making install in ini make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/ini' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/ini' make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/ini' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/ini' Making install in libltdl make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/libltdl' make install-am make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/libltdl' make[3]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/libltdl' test -z "/usr/lib64" || /usr/bin/mkdir -p "/usr/lib64" test -z "/usr/include" || /usr/bin/mkdir -p "/usr/include" test -z "" || /usr/bin/mkdir -p "" make[3]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/libltdl' make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/libltdl' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/libltdl' Making install in odbcinst make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/odbcinst' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/odbcinst' test -z "/usr/lib64" || /usr/bin/mkdir -p "/usr/lib64" /bin/sh ../libtool --mode=install /usr/bin/install -c libodbcinst.la '/usr/lib64' libtool: install: /usr/bin/install -c .libs/libodbcinst.so.2.0.0 /usr/lib64/libodbcinst.so.2.0.0 libtool: install: (cd /usr/lib64 && { ln -s -f libodbcinst.so.2.0.0 libodbcinst.so.2 || { rm -f libodbcinst.so.2 && ln -s libodbcinst.so.2.0.0 libodbcinst.so.2; }; }) libtool: install: (cd /usr/lib64 && { ln -s -f libodbcinst.so.2.0.0 libodbcinst.so || { rm -f libodbcinst.so && ln -s libodbcinst.so.2.0.0 libodbcinst.so; }; }) libtool: install: /usr/bin/install -c .libs/libodbcinst.lai /usr/lib64/libodbcinst.la libtool: finish: PATH="/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin:/sbin" ldconfig -n /usr/lib64 ---------------------------------------------------------------------- Libraries have been installed in: /usr/lib64 If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- test -z "/etc" || /usr/bin/mkdir -p "/etc" make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/odbcinst' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/odbcinst' Making install in DriverManager make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/DriverManager' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/DriverManager' test -z "/usr/lib64" || /usr/bin/mkdir -p "/usr/lib64" /bin/sh ../libtool --mode=install /usr/bin/install -c libodbc.la '/usr/lib64' libtool: install: /usr/bin/install -c .libs/libodbc.so.2.0.0 /usr/lib64/libodbc.so.2.0.0 libtool: install: (cd /usr/lib64 && { ln -s -f libodbc.so.2.0.0 libodbc.so.2 || { rm -f libodbc.so.2 && ln -s libodbc.so.2.0.0 libodbc.so.2; }; }) libtool: install: (cd /usr/lib64 && { ln -s -f libodbc.so.2.0.0 libodbc.so || { rm -f libodbc.so && ln -s libodbc.so.2.0.0 libodbc.so; }; }) libtool: install: /usr/bin/install -c .libs/libodbc.lai /usr/lib64/libodbc.la libtool: finish: PATH="/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin:/sbin" ldconfig -n /usr/lib64 ---------------------------------------------------------------------- Libraries have been installed in: /usr/lib64 If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/DriverManager' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/DriverManager' Making install in exe make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/exe' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/exe' test -z "/usr/bin" || /usr/bin/mkdir -p "/usr/bin" /bin/sh ../libtool --mode=install /usr/bin/install -c isql dltest odbcinst iusql odbc_config '/usr/bin' libtool: install: /usr/bin/install -c .libs/isql /usr/bin/isql libtool: install: /usr/bin/install -c dltest /usr/bin/dltest libtool: install: /usr/bin/install -c .libs/odbcinst /usr/bin/odbcinst libtool: install: /usr/bin/install -c .libs/iusql /usr/bin/iusql libtool: install: /usr/bin/install -c odbc_config /usr/bin/odbc_config make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/exe' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/exe' Making install in cur make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/cur' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/cur' test -z "/usr/lib64" || /usr/bin/mkdir -p "/usr/lib64" /bin/sh ../libtool --mode=install /usr/bin/install -c libodbccr.la '/usr/lib64' libtool: install: /usr/bin/install -c .libs/libodbccr.so.2.0.0 /usr/lib64/libodbccr.so.2.0.0 libtool: install: (cd /usr/lib64 && { ln -s -f libodbccr.so.2.0.0 libodbccr.so.2 || { rm -f libodbccr.so.2 && ln -s libodbccr.so.2.0.0 libodbccr.so.2; }; }) libtool: install: (cd /usr/lib64 && { ln -s -f libodbccr.so.2.0.0 libodbccr.so || { rm -f libodbccr.so && ln -s libodbccr.so.2.0.0 libodbccr.so; }; }) libtool: install: /usr/bin/install -c .libs/libodbccr.lai /usr/lib64/libodbccr.la libtool: finish: PATH="/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin:/sbin" ldconfig -n /usr/lib64 ---------------------------------------------------------------------- Libraries have been installed in: /usr/lib64 If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/cur' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/cur' Making install in DRVConfig make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/DRVConfig' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/DRVConfig' make[3]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/DRVConfig' make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/DRVConfig' make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/DRVConfig' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/DRVConfig' Making install in Drivers make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/Drivers' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/Drivers' make[3]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/Drivers' make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/Drivers' make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/Drivers' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/Drivers' Making install in include make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/include' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/include' make[2]: Nothing to be done for `install-exec-am'. test -z "/usr/include" || /usr/bin/mkdir -p "/usr/include" /usr/bin/install -c -m 644 odbcinst.h odbcinstext.h sql.h sqlext.h sqltypes.h sqlucode.h autotest.h uodbc_stats.h uodbc_extras.h '/usr/include' make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/include' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/include' Making install in doc make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc' Making install in AdministratorManual make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/AdministratorManual' make[3]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/AdministratorManual' make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/AdministratorManual' make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/AdministratorManual' Making install in ProgrammerManual make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/ProgrammerManual' Making install in Tutorial make[3]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/ProgrammerManual/Tutorial' make[4]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/ProgrammerManual/Tutorial' make[4]: Nothing to be done for `install-exec-am'. make[4]: Nothing to be done for `install-data-am'. make[4]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/ProgrammerManual/Tutorial' make[3]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/ProgrammerManual/Tutorial' make[3]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/ProgrammerManual' make[4]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/ProgrammerManual' make[4]: Nothing to be done for `install-exec-am'. make[4]: Nothing to be done for `install-data-am'. make[4]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/ProgrammerManual' make[3]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/ProgrammerManual' make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/ProgrammerManual' Making install in UserManual make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/UserManual' make[3]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/UserManual' make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/UserManual' make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/UserManual' Making install in lst make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/lst' make[3]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/lst' make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/lst' make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc/lst' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc' make[3]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc' make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. make[3]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc' make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/doc' Making install in samples make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/samples' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/samples' make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/samples' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1/samples' make[1]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1' make[2]: Entering directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1' make[2]: Nothing to be done for `install-exec-am'. touch /etc/odbcinst.ini touch /etc/odbc.ini mkdir -p /etc/ODBCDataSources cp unixodbc_conf.h /usr/include/unixodbc_conf.h make[2]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1' make[1]: Leaving directory `/tmp/unixODBC.22851.19567.8231/unixODBC-2.3.1'
It is time to make a backup copy of odbcinst.ini
. To determine
location of odbcinst.ini
, use the following command:
odbc_config --odbcinstini
This will return something like:
/etc/odbcinst.ini
Copy the file:
cp /etc/odbcinst.ini /etc/odbcinst.bak
Verify that the required software to support the ODBC driver on Linux is present:
cd ~/Downloads/msodbc* ./install.sh verify
The output:
Microsoft ODBC Driver 13 for SQL Server Installation Script Copyright Microsoft Corp. Starting install for Microsoft ODBC Driver 13 for SQL Server Checking for 64 bit Linux compatible OS ..................................... OK Checking required libs are installed ........................................ OK unixODBC utilities (odbc_config and odbcinst) installed ..................... OK unixODBC Driver Manager version 2.3.1 installed ............................. OK unixODBC Driver Manager configuration correct .............................. OK* Microsoft ODBC Driver 13 for SQL Server already installed ............ NOT FOUND Install log created at /tmp/msodbcsql.1081.14963.5459/install.log. One or more steps may have an *. See README for more information regarding these steps.
Time to install the SQL Server driver:
./install.sh install
And the output:
Microsoft ODBC Driver 13 for SQL Server Installation Script Copyright Microsoft Corp. Starting install for Microsoft ODBC Driver 13 for SQL Server MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT ODBC DRIVER 13 (Preview) FOR SQL SERVER These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft • updates, • supplements, • Internet-based services, and • support services for this software, unless other terms accompany those items. If so, those terms apply. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE. If you comply with these license terms, you have the rights below. 1. INSTALLATION AND USE RIGHTS. You may install and use any number of copie s of the software on your devices to design, develop and test your programs. 2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. a. Distributable Code. i. Right to Use and Distribute. If you comply with the terms below: • You may copy and distribute the object code form of the software (“Distr ibutable Codeâ€) in programs you develop; and • You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs. ii. Distribution Requirements. For any Distributable Code you distribute, yo u must • add significant primary functionality to it in your programs; • for any Distributable Code having a filename extension of .lib, distribu te only the results of running such Distributable Code through a linker with you r program; • distribute Distributable Code included in a setup program only as part o f that setup program without modification; • require distributors and external end users to agree to terms that prote ct it at least as much as this agreement; • display your valid copyright notice on your programs; and • indemnify, defend, and hold harmless Microsoft from any claims, includin g attorneys’ fees, related to the distribution or use of your programs. iii. Distribution Restrictions. You may not • alter any copyright, trademark or patent notice in the Distributable Cod e; • use Microsoft’s trademarks in your programs’ names or in a way that sugg ests your programs come from or are endorsed by Microsoft; • distribute Distributable Code to run on a platform other than the Window s platform; • include Distributable Code in malicious, deceptive or unlawful programs; or • modify or distribute the source code of any Distributable Code so that a ny part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that • the code be disclosed or distributed in source code form; or • others have the right to modify it. 3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement onl y gives you some rights to use the software. Microsoft reserves all other rights . Unless applicable law gives you more rights despite this limitation, you may u se the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you t o use it in certain ways. You may not • work around any technical limitations in the software; • reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation; • make more copies of the software than specified in this agreement or all owed by applicable law, despite this limitation; • publish the software for others to copy; • rent, lease or lend the software; • transfer the software or this agreement to any third party; or • use the software for commercial software hosting services. 4. BACKUP COPY. You may make one backup copy of the software. You may use i t only to reinstall the software. 5. DOCUMENTATION. Any person that has valid access to your computer or inte rnal network may copy and use the documentation for your internal, reference pur poses. 6. EXPORT RESTRICTIONS. The software is subject to United States export law s and regulations. You must comply with all domestic and international export la ws and regulations that apply to the software. These laws include restrictions o n destinations, end users and end use. For additional information, see www.micro soft.com/exporting. 7. SUPPORT SERVICES. Because this software is “as is,†we may not provide s upport services for it. 8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates , Internet-based services and support services that you use, are the entire agre ement for the software and support services. 9. APPLICABLE LAW. a. United States. If you acquired the software in the United States, Washin gton state law governs the interpretation of this agreement and applies to claim s for breach of it, regardless of conflict of laws principles. The laws of the s tate where you live govern all other claims, including claims under state consum er protection laws, unfair competition laws, and in tort. b. Outside the United States. If you acquired the software in any other cou ntry, the laws of that country apply. 10. LEGAL EFFECT. This agreement describes certain legal rights. You may hav e other rights under the laws of your country. You may also have rights with res pect to the party from whom you acquired the software. This agreement does not c hange your rights under the laws of your country if the laws of your country do not permit it to do so. 11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.†YOU BEAR THE R ISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS . YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS UNDER YOUR LOCAL LAWS WHICH THIS AGREE MENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXC LUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOS E AND NON-INFRINGEMENT. 12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FRO M MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT R ECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRE CT OR INCIDENTAL DAMAGES. This limitation applies to • anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and • claims for breach of contract, breach of warranty, guarantee or conditio n, strict liability, negligence, or other tort to the extent permitted by applic able law. It also applies even if Microsoft knew or should have known about the possibilit y of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequen tial or other damages. Please note: As this software is distributed in Quebec, Canada, some of the clau ses in this agreement are provided below in French. Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français. EXONéRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits addi tionnels en vertu du droit local sur la protection des consommateurs, que ce con trat ne peut modifier. La ou elles sont permises par le droit locale, les garant ies implicites de qualité marchande, d’adéquation à un usage particulier et d’ab sence de contrefaçon sont exclues. LIMITATION DES DOMMAGES-INTéRÊTS ET EXCLUSION DE RESPONSABILITé POUR LES DOMMAGE S. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez préten dre à aucune indemnisation pour les autres dommages, y compris les dommages spéc iaux, indirects ou accessoires et pertes de bénéfices. Cette limitation concerne : • tout ce qui est relié au logiciel, aux services ou au contenu (y compris le co de) figurant sur des sites Internet tiers ou dans des programmes tiers ; et • les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite aut orisée par la loi en vigueur. Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’ éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la lim itation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’ appliquera pas à votre égard. Enter YES to accept the license or anything else to terminate the installation:
Enter 'YES' and hit Enter.
Checking for 64 bit Linux compatible OS ..................................... OK Checking required libs are installed ........................................ OK unixODBC utilities (odbc_config and odbcinst) installed ..................... OK unixODBC Driver Manager version 2.3.1 installed ............................. OK unixODBC Driver Manager configuration correct .............................. OK* Microsoft ODBC Driver 13 for SQL Server already installed ............ NOT FOUND Microsoft ODBC Driver 13 for SQL Server files copied ........................ OK Symbolic links for bcp and sqlcmd created ................................... OK Microsoft ODBC Driver 13 for SQL Server registered ................... INSTALLED Install log created at /tmp/msodbcsql.19351.21545.25797/install.log. One or more steps may have an *. See README for more information regarding these steps.
Verify that the ODBC Driver Manager library location is part of the
ld
path as follow:
Edit the /etc/ld.so.conf
.
vi /etc/ld.so.conf
My file contents include:
include ld.so.conf.d/*.conf
Add the following line to the bottom of the file:
/usr/lib64
Save the file. Force the ld configuration file to reload by issuing
the command:
ldconfig
Installation puts the driver in
/opt/microsoft/msodbcsql/13.0.0.0
. The driver and its support
files must be in /opt/microsoft/msodbcsql/13.0.0.0
To verify that the ODBC drive on Linux was registered successfully,, execute the following command:
odbcinst -q -d -n "ODBC Driver 13 for SQL Server"
The output looks like:
[ODBC Driver 13 for SQL Server] Description=Microsoft ODBC Driver 13 for SQL Server Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0 Threading=1 UsageCount=1