Open Database Connectivity

From ArchWiki
Jump to: navigation, search

Open Database Connectivity, commonly ODBC, is an open specification for providing application developers with a predictable API with which to access Data Sources. An ODBC engine needs drivers to be able to interact with databases.

ODBC engines

You have two options to chose from: unixODBC and iODBC. Apparently unixODBC is more widely supported. This document shows how to set up unixODBC. First to access your database on your localhost and then extends the steps to configure MySQL to allow remote access through ODBC.

Additionally you can choose from various Devart ODBC drivers for SQL Server, Oracle, MySQL, SQLite, Firebird, PostgreSQL, Interbase.


# pacman -S unixodbc


At /etc/odbcinst.ini is where drivers are declared, and /etc/odbc.ini where connections. More instruction at each driver section.



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.


pacman -S freetds



Driver          = /usr/lib/
UsageCount      = 1


Myodbc is ODBC driver/connector for mariadb.


Install myodbcAUR from official repositories. (The package disappeared from oficial repositories and does not exist in AUR either. Google search appears to have seen it in March 2016 last time.)


Starting with odbcinst.ini, which lists all installed drivers. Su to root and set up your /etc/odbcinst.ini file as follows

Description     = ODBC Driver for MySQL
Driver          = /usr/lib/
Setup           = /usr/lib/
FileUsage       = 1

Create a symbolic link

Next we need to create a symlink for To do this we need to go to "/usr/lib/" and set up a symlink to

 cd /usr/lib/
 ln -s ./ ./


Microsoft SQL Server 2000


Driver      = FreeTDS
#Trace       = Yes
#TraceFile   = /tmp/odbc
Servername  = server_name
Database    = database_name


host = # Host name or IP address.
port = 1433 # Default port.
tds version = 7.1
client charset = UTF-8

SQL Server ODBC driver connection strings and configuration guide


Set up your data sources in "/etc/odbc.ini" (system wide) or "~/.odbc" (current user). If a data source is defined in both of these files, the one in your home directory take precedence.

Description     = MySQL database test
Driver          = MySQL
Server          = localhost
Database        = test
Port            = 3306
Socket          = /var/run/mysqld/mysqld.sock
Option          =
Stmt            =

MariaDB ODBC driver connection strings and configuration guide

Create a test database

Create a new database "test". You can use one of the MySQL front-ends such as mysql-workbench, or the command-line mysqladmin command:

mysqladmin -h localhost -u root -p create test

Testing the ODBC

To test the ODBC connection

isql MySQL-test

If the connection is established, you will see

| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |

If you have a problem connecting then check the error message by running

isql MySQL-test -v

A couple useful websites

This website got me going on ODBC with MySQL but left out some things that were necessary for me to get isql up and running. However this might be a good reference for the OpenOffice part.

To work around error messages this URL proved helpful so here it is as well.

Virtuoso / SPARQL


[ODBC Data Sources]
VOS = Virtuoso

Driver = virtuoso-odbc
Description = Virtuoso Open-Source Edition
Address = localhost:1111


Driver = /usr/lib/

Opening a connection using the default credentials (username: "dba", password: "dba"):

isql VOS dba dba