[R] rodbc or unixodbc error
Dirk Eddelbuettel
edd at debian.org
Tue Feb 22 03:17:54 CET 2005
Sebastian,
On 21 February 2005 at 19:18, Sebastian Luque wrote:
| I'm trying to establish a connection to a MySQL database, and am using the
| rodbc package for it. This is in a GNU/Debian Linux box, with the
| corresponding Debian unstable packages. I can login to my MySQL databases
| from any shell and directory, so the problem is probably not there. Here's
| an example of what I'm doing:
|
| R> odbcConnect("test", uid="myusername", pwd="mypassword")
| [1] -1
| Warning messages:
| 1: [RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data source name not found, and no default driver specified
| 2: ODBC connection failed in: odbcDriverConnect(st, case = case, believeNRows = believeNRows)
|
|
| The error is apparently from unixodbc, and googling for it I found that
| somebody solved it by specifying a default driver in a odbc.ini file. Can
| somebody please tell whether this is the right approach, and if so, how to
| write that specification? I saw that one might do this in a ~/.odbc.ini
| (i.e. the user's config file) file.
Yes, this is under-documented and thus harder than it should be. I owe my
first working setup many, many years ago to a helpful (private) mail from
Fritz.
So here goes, I just tested it again with PostgresSQL (as I don't currently
keep MySQL running) yet it should carry over. If it fails, let's work on this
off-list.
i) /etc/odbcinst.ini -- I think these entries may even have been created by
a Debian package but I am not entirely sure.
-----------------------------------------------------------------------------
edd at basebud:~> cat /etc/odbcinst.ini
[PostgreSQL]
Description = PostgreSQL ODBC driver for Linux and Windows
Driver = /usr/lib/postgresql/lib/psqlodbc.so
Setup = /usr/lib/odbc/libodbcpsqlS.so
Debug = 0
CommLog = 1
[MySQL]
Description = MySQL driver
Driver = /usr/lib/odbc/libmyodbc.so
Setup = /usr/lib/odbc/libodbcmyS.so
CPTimeout =
CPReuse =
FileUsage = 1
-----------------------------------------------------------------------------
Make sure you have those files in those places -- and if you only use
MySQL you can probably do without the first set here.
ii) /etc/odbc.ini -- Here is one such entry:
-----------------------------------------------------------------------------
[beancounter]
Description = Beancounter DB (Postgresql)
Driver = Postgresql
Trace = Yes
TraceFile = /tmp/beancounter_odbc.log
Database = beancounter
Servername = localhost
UserName =
Password =
Port = 5432
Protocol = 6.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =
-----------------------------------------------------------------------------
The only fields that matter may be Driver, Database, Servername and maybe
Port. I'm sorry that I don't have a stanza for MySQL in use. An older
one on another computer is
-----------------------------------------------------------------------------
[beancounter_mysql]
Driver = /usr/lib/libmyodbc.so
Database = beancounter
Servername = localhost
ReadOnly = 0
-----------------------------------------------------------------------------
but I cannot test that one right now.
Hth, Dirk
--
Better to have an approximate answer to the right question than a precise
answer to the wrong question. -- John Tukey as quoted by John Chambers
More information about the R-help
mailing list