Linux Fedora - como criar DSN de banco de dados na instância do MySQL em execução no localhost para uso pelo RODBC?

0

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.

    
por Jubbles 18.08.2013 / 20:06

1 resposta

0

Consegui reproduzir seu problema no CentOS 6.3. Depois disso, instalei o pacote mysql-connector-odbc: yum install mysql-connector-odbc e ele foi capaz de se conectar ao banco de dados MySQL. Primeiro, remova o que você adicionou manualmente a /etc/odbcinst.ini e depois instale o mysql-connector-odbc, que atualizará /etc/odbcinst.ini para você. Dê uma chance e execute seu script novamente, depois nos informe se o problema ainda está ocorrendo.

Além disso, parece que existem alguns pacotes incompatíveis instalados. Se você tem algum que comece com o MySQL- (do mysql.com) (verifique com rpm -qa | grep -i mysql ), remova-os e instale aqueles que fazem parte dos repositórios yum de distribuições padrão. Você pode precisar apenas removê-los todos e depois instalar o que você precisa.

    
por 19.08.2013 / 19:49