Quantcast
Channel: Haskell, HDBC, ODBC, MySQL and Mac OS X - Stack Overflow
Viewing all articles
Browse latest Browse all 3

Haskell, HDBC, ODBC, MySQL and Mac OS X

$
0
0

I'm trying to use Haskell (version 6.10.3) and HDBC to connect to a MySQL Database. I've chosen to do it with Haskell ODBC. I've used cabal to install HDBC (2.1.1) and HDBC-ODBC (2.1.0.0). I've downloaded and installed the MySQL ODBC driver (5.1.5). I used macports to install unixODBC (2.2.14_1). All of this on top of Mac OS X (10.5.8).

I've mostly been using the instructions on this page http://en.wikibooks.org/wiki/Haskell/Database. At around this point:

"# Add the mysql driver to odbcinst.ini file (under $ODBC_HOME/etc/) and your data source in $HOME/.odbc.ini."

It looks like the macports version of unixODBC installs everything under /opt/local/. I've put an odbcinst.ini into /opt/local/etc/ and I've created a .odbc.ini in my home directory which looks something like this (note that I've experimented with UID vs. USERNAME and PWD vs PASSWORD):

[ODBC Data Sources]myodbc = MySQL ODBC 5.1 Driver[ODBC]Trace         = 0TraceAutoStop = 0TraceFile     =TraceLibrary  =[myodbc]Driver      = /usr/local/lib/libmyodbc5.soDATABASE    = [hidden]DESCRIPTION = [hidden]SERVER      = localhostPORT        = 3306UID         = [hidden]PWD         = [hidden]PASSWORD    = [hidden]USER        = [hidden]

And I've written and compiled this Haskell Program:

import Database.HDBC.ODBCimport Database.HDBCimport Systemmain = do  args <- getArgs  c  <-  connectODBC (args!!0)  tables <-  getTables c  mapM_ putStrLn $ tables

When I try a DSN of "DSN=myodbc" it errors out with:

Database: SqlError   {seState = "[\"HY000\"]",     seNativeError = -1,     seErrorMsg = "connectODBC/sqlDriverConnect:       [\"1045: [unixODBC][MySQL][ODBC 5.1 Driver]Access         denied for user 'jamie'@'localhost' (using password: YES)\"]"}

However, when I try a DSN of "DSN=myodbc;UID=[hidden];PWD=[hidden]", it lists all the tables in the database.


Viewing all articles
Browse latest Browse all 3




Latest Images