Difference between revisions of "Odbc"

From ArchWiki
Jump to: navigation, search
(MySQL and ODBC)
(79 intermediate revisions by 16 users not shown)
Line 1: Line 1:
=MySQL and ODBC Setup=
#REDIRECT [[Open Database Connectivity]]
This document shows how to set up ODBC in Arch first on your localhost and then extends the steps to setup ODBC on
a server.
==Packages to install==
Start by installing the unixodbc and myodbc
# pacman -Sy unixodbc
# pacman -Sy myodbc
===Configure your ini files===
Configure your "odbc.ini", ".odbc.ini", and "odbcinst.ini" file.
Startinig with odbcinst.ini, Su to root and set up your /etc/odbcinst.ini file as follows
Description    = ODBC Driver for MySQL
Driver          = /usr/lib/libmyodbc.so
Setup          = /usr/lib/libodbcmyS.so
FileUsage      = 1
Next set up your odbc.ini and .odbc.ini file. "It should be pointed out here that the .odbc.ini file is just like the odbc.ini file except that it is a file that gets saved in the user's home dir.
Description    = MySQL database test
Driver          = MySQL
Server          = localhost
atabase        = test
Port            = 3306
Socket          = /tmp/mysql.sock
Option          =
Stmt            =
this was the tutorial and here are the steps we did to get around the error messages
1)created the odbc.ini and .odbc.ini
and created odbcinst.ini and .odbcinst.ini in the home dir
2) made a symlink
ls -s /usr/lib/libmyodbc3-3.51.12.so ./libmyodbc.so
3)two files version names are wrong, so cp and rename
i.e. cp libcrypto.so.0.9.8 libcrypto.so.0.9.7
5)mysql.sock is in /tmp/
Here are the files
Description    = MySQL database test
Driver          = MySQL
Server          = localhost
Database        = test
Port            = 3306
Socket          = /tmp/mysql.sock
Option          =
Stmt            =
For a remote connection there are a couple of extra steps
1) hosts.all needs "mysqld: ALL"
2) verify port 3306 is listening by "netstat -ant" in shell
3) grant permission to individual IP in mysql
Grant access to new database
If you want to add new database called foo for user bar and remote IP then you need to type following commands at mysql> prompt:
Grant access to existing database
Let us assume that you are always making connection from remote IP called for database called webdb for user webadmin then you need to grant access to this IP address. At mysql> prompt type following command for existing database:
mysql> update db set Host='' where Db='webdb';
mysql> update user set Host='' where user='webadmin';
From remote system type command:
$ mysql -u webadmin –h –p
You can also use telnet to connect to port 3306 for testing purpose:
$ telnet 3306
Description    = MySQL database test
Driver          = MySQL
Server          =
Trace          = Off
TraceFile      = stderr
Database        =foo
Port            = 3306
USER            = adowns
Password        = boston
Socket          = /tmp/mysql.sock
Option          =
Stmt            =

Latest revision as of 10:32, 21 February 2015