How to install freetds in Linux?
Solution 1
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).
Solution 2
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
Related videos on Youtube
Comments
-
Hrvoje T about 3 years
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?
-
Hasan A Yousef over 8 yearscheck my the steps I followed here, hope that help you: stackoverflow.com/questions/34725523/…
-
-
Hrvoje T over 8 yearsI'm new in this. I suppose I shoud change
Server = dbserver.domain.com
with IP of my server? Is this how I use tsqltsql -S dbserverdsn
or should I write IP there? When I usetsql -S dbserverdsn
I getError 100 (severity 11): unrecognized msgno Error 20009 (severity 9):Unable to connect: Adaptive Server is unavailable or does not exist OS error 111, "Connection refused" There was a problem connecting to the server
-
Apit John Ismail over 6 yearsthere should be tsql -S dbserverdsn <userid> <password>
-
Jay Killeen over 6 yearsI checked the tds version with
tsql -C
and saw it was 4.2. I replaced the 7.2's above with 4.2 and that seemed to remove themsgno error
-
ˈvɔlə almost 5 yearsJust FYI: Current stable release version is
1.12
(2019/07). -
Peter Krauss almost 4 yearsIt seems working with
sudo apt install -y freetds-bin
(!) -
Masiorama over 2 yearsVery useful, thanks!