Algumas preliminares -
OS: lançamento do Fedora 16 (Verne)
Versão do servidor MySQL: 5.5.29 MySQL Community Server
Versão R: 2.15.1 (2012-06-22) - "Marshmallows Assados"
Estou executando um servidor MySQL que está hospedado no host local (127.0.0.1).
Eu tenho scripts R que usam a biblioteca RODBC
e gostaria de passar um nome de fonte de dados (DSN) para a função odbcConnect()
de ODBC
.
Após alguns Googling (há algumas páginas que lidam com MS SQL Server
DSNs com RODBC
em um sistema operacional Linux), sou de opinião que preciso preencher o arquivo de configuração em /etc/odbc.ini
. Atualmente, aqui estão os conteúdos do arquivo:
[ODBC Data Sources]
myDSN = MySQL
[myDSN]
Description = my Data Source Name
Driver = MySQL
UID = root
PWD = *password*
Port = 3306
Database = my_database
Eu também li que o valor do Driver no arquivo acima aponta para /etc/odbcinst.ini
. Aqui está o seu conteúdo:
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1
No entanto, quando eu executo o R, recebo uma mensagem de erro.
> library(RODBC)
> cn <- odbcConnect('myDSN')
Warning messages:
1: In odbcDriverConnect("DSN=myDSN") :
[RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib '/usr/lib/libmyodbc5.so' : file not found
2: In odbcDriverConnect("DSN=myDSN") : ODBC connection failed
Eu verifiquei que o arquivo /usr/lib/libmyodbc5.so
existe. Na verdade, é um link para /usr/lib/libmyodbc5-5.1.8.so
; Eu tentei substituir este nome de arquivo em Driver
linha de /etc/odbcinst.ini
, mas recebo o mesmo erro de R.
Como posso fazer isso funcionar enquanto ainda uso RODBC
?
===== UPDATE =====
Eu removi o que eu tinha adicionado manualmente em /etc/odbcinst.ini e, em seguida, continuei com as etapas a seguir.
Eu tentei instalar o mysql-connector-odbc
, mas foi informado de que ele já estava instalado. Então parei meu servidor MySQL, removi o pacote mysql-connector-odbc
com sudo yum remove mysql-connector-odbc
, re-instalei o pacote mysql-connector-odbc
e iniciei o servidor MySQL.
Quando tentei executar os mesmos comandos R acima, recebi os mesmos resultados.