Несколько предварительных -
ОС: Fedora, выпуск 16 (Verne)
Версия сервера MySQL: 5.5.29 Сервер сообщества MySQL
Версия R: 2.15.1 (2012-06-22) - "Жареные зефиры"
Я использую сервер MySQL, который размещен на локальном хосте (127.0.0.1).
У меня есть R-сценарии, которые используют библиотеку RODBC
и хотели бы иметь возможность передавать имя источника данных (DSN) в odbcConnect()
ODBC
.
После некоторого поиска в Google (есть несколько страниц, посвященных DSN MS SQL Server
с RODBC
в ОС Linux), я считаю, что мне нужно заполнить файл конфигурации в /etc/odbc.ini
. В настоящее время вот содержимое файла:
[ODBC Data Sources]
myDSN = MySQL
[myDSN]
Description = my Data Source Name
Driver = MySQL
UID = root
PWD = *password*
Port = 3306
Database = my_database
Я также прочитал, что значение драйвера в приведенном выше файле указывает на /etc/odbcinst.ini
. Вот его содержание:
[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
Тем не менее, когда я запускаю R, я получаю сообщение об ошибке.
> 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
Я проверил, что файл /usr/lib/libmyodbc5.so
существует. На самом деле это ссылка на /usr/lib/libmyodbc5-5.1.8.so
; Я попытался заменить это имя файла в строке Driver
/etc/odbcinst.ini
но получил ту же ошибку от R.
Как я могу заставить это работать , все еще используя RODBC
?
===== ===== UPDATE
Я удалил то, что добавил вручную в /etc/odbcinst.ini, а затем приступил к следующим шагам.
Я попытался установить mysql-connector-odbc
, но мне сказали, что он уже установлен. Поэтому я остановил свой сервер MySQL, удалил пакет mysql-connector-odbc
с помощью команды sudo yum remove mysql-connector-odbc
, переустановил пакет mysql-connector-odbc
и запустил сервер MySQL.
Когда я попытался выполнить те же команды R, что и выше, я получил те же результаты.