Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install freetds in Linux?

Tags:

I am trying to connect to MSSQL server from Ubuntu. I have installed freetds like suggested here.

enter image description 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.

enter image description here

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?

like image 973
Hrvoje T Avatar asked Oct 26 '15 08:10

Hrvoje T


People also ask

What is Ubuntu FreeTDS?

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 .

What is FreeTDS driver?

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.


2 Answers

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).

like image 107
FlipperPA Avatar answered Oct 26 '22 22:10

FlipperPA


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 
like image 20
rdaniels Avatar answered Oct 26 '22 23:10

rdaniels