MySQL and ODBC Setup
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
[MySQL] 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.
[MySQL-test] Description = MySQL database test Driver = MySQL Server = localhost atabase = test Port = 3306 Socket = /tmp/mysql.sock Option = Stmt =
Create A Symbolic Link
Next we need to create a symlink for libmyodbc.so. To do this we need to go to /usr/lib/myodbc3-3.51.12.so or what the version of the module is and set up a symlink to libmyodbc.so
ln -s /usr/lib/libmyodbc3-3.51.12.so ./libmyodbc.so
OK, for this step I cheapskated it a little and simply renamed these files to agree with version of ODBC Arch was looking for.
cp libcrypto.so.0.9.8 libcrypto.so.0.9.7 cp libcrypto.so.0.9.8 libcrypto.so.0.9.7
On my machine I run phpmyadmin so I already had a test database to use. If you don't have a test database then create one in MySQL.
Testing the ODBC
To set the ODBC connection run
If you have a problem connecting then run
isql MySQL-test -v
A Couple Very Useful Websites
this was the tutorial and here are the steps we did to get around the error messages
___________ 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 http://www.cyberciti.biz/nixcraft/vivek/blogger/2006/03/how-do-i-enable-remote-access-to-mysql.php Grant access to new database If you want to add new database called foo for user bar and remote IP 184.108.40.206 then you need to type following commands at mysql> prompt:
mysql> CREATE DATABASE foo; mysql> GRANT ALL ON foo.* TO bar@'220.127.116.11' IDENTIFIED BY 'PASSWORD'; Grant access to existing database Let us assume that you are always making connection from remote IP called 18.104.22.168 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='22.214.171.124' where Db='webdb'; mysql> update user set Host='126.96.36.199' where user='webadmin';
From remote system type command:
$ mysql -u webadmin –h 188.8.131.52 –p You can also use telnet to connect to port 3306 for testing purpose:
$ telnet 184.108.40.206 3306
____________________________________________________ [MySQL-test] Description = MySQL database test Driver = MySQL Server = 192.168.0.2 Trace = Off TraceFile = stderr Database =foo Port = 3306 USER = adowns Password = boston Socket = /tmp/mysql.sock Option = Stmt =