Odbc

From ArchWiki
Revision as of 22:47, 9 July 2006 by Adowns (talk | contribs) (MySQL and ODBC)
Jump to: navigation, search

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

Renamed Modules

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

Test Datbase

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

isql MySQL-test

If you have a problem connecting then run

isql MySQL-test -v

A Couple Very Useful Websites

http://mail.easysoft.com/pipermail/unixodbc-support/2004-August/000111.html

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 202.54.10.20 then you need to type following commands at mysql> prompt:

mysql> CREATE DATABASE foo; mysql> GRANT ALL ON foo.* TO bar@'202.54.10.20' IDENTIFIED BY 'PASSWORD'; Grant access to existing database Let us assume that you are always making connection from remote IP called 202.54.10.20 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='202.54.10.20' where Db='webdb'; mysql> update user set Host='202.54.10.20' where user='webadmin';


From remote system type command:

$ mysql -u webadmin –h 65.55.55.2 –p You can also use telnet to connect to port 3306 for testing purpose:

$ telnet 65.55.55.2 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 =