I am trying to connect to MSSQL server from Ubuntu. I have installed freetds like suggested here.
However, when I try to configure /etc/odbc.ini and enter a driver path I have no driver at location /usr/local/freetds/lib/libtdsodbc.so
.
Can someone help me to install freetds and to configure odbc to use it? *edit1: I have found libtdsodbc.so in /usr/lib/x86_64-linux-gnu/odbc. Should I use that driver/path?
FreeTDS is an implementation of the Tabular DataStream protocol, used for connecting to MS SQL and Sybase servers over TCP/IP. . This package includes the command-line utilities shipped with FreeTDS. There are three ways to install freetds-bin on Ubuntu 20.04. We can use apt-get , apt and aptitude .
FreeTDS is a set of libraries for Unix and Linux that allows your programs to natively talk to Microsoft SQL Server and Sybase databases. Technically speaking, FreeTDS is an open source implementation of the TDS (Tabular Data Stream) protocol used by these databases for their own clients.
I've created a Vagrant box which has a full installation example here: https://github.com/FlipperPA/django-python3-vagrant/
...but here are the basic steps.
# Install pre-requesite packages sudo apt-get install unixodbc unixodbc-dev freetds-dev freetds-bin tdsodbc
Point odbcinst.ini to the driver in /etc/odbcinst.ini:
[FreeTDS] Description = v0.91 with protocol v7.2 Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Create your DSNs in odbc.ini:
[dbserverdsn] Driver = FreeTDS Server = dbserver.domain.com Port = 1433 TDS_Version = 7.2
...and your DSNs in freetds.conf:
[global] # TDS protocol version, use: # 7.3 for SQL Server 2008 or greater (tested through 2014) # 7.2 for SQL Server 2005 # 7.1 for SQL Server 2000 # 7.0 for SQL Server 7 tds version = 7.2 port = 1433 # Whether to write a TDSDUMP file for diagnostic purposes # (setting this to /tmp is insecure on a multi-user system) ; dump file = /tmp/freetds.log ; debug flags = 0xffff # Command and connection timeouts ; timeout = 10 ; connect timeout = 10 # If you get out-of-memory errors, it may mean that your client # is trying to allocate a huge buffer for a TEXT field. # Try setting 'text size' to a more reasonable limit text size = 64512 # A typical Microsoft server [dbserverdsn] host = dbserver.domain.com port = 1433 tds version = 7.2
After completing this, you can test your connection by attempting to connect with tsql (to test the FreeTDS layer) and isql (for the unixODBC through FreeTDS stack).
The version available via apt-get
is a really old version. To get a newer version:
sudo apt-get install wget sudo apt-get install build-essential sudo apt-get install libc6-dev # find latest version of FreeTDS ftp://ftp.freetds.org/pub/freetds/stable/ wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.2.tar.gz tar -xzf freetds-1.2.tar.gz cd freetds-1.2 ./configure --prefix=/usr/local --with-tdsver=7.3 sudo make sudo make install
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With