Difference between revisions of "Odbc"

From ArchWiki
Jump to: navigation, search
(MySQL and ODBC)
 
(71 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
 
[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            =
 

Latest revision as of 10:32, 21 February 2015