Linux Fedora - как создать DSN базы данных в экземпляре MySQL, работающем на локальном хосте, для использования RODBC?
Несколько предварительных -
ОС: 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 (есть несколько страниц, которые касаются MS SQL Server
DSN с 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, что и выше, я получил те же результаты.
1 ответ
Мне удалось воспроизвести вашу проблему на CentOS 6.3. После этого я установил пакет mysql-connector-odbc: yum install mysql-connector-odbc
и тогда он смог подключиться к базе данных MySQL. Сначала удалите то, что вы добавили вручную /etc/odbcinst.ini
и затем установите mysql-connector-odbc, который обновит /etc/odbcinst.ini
для тебя. Попробуйте и снова запустите свой сценарий, а затем сообщите нам, если проблема все еще возникает.
Также кажется, что установлены несовместимые пакеты. Если у вас есть, которые начинаются с MySQL- (из mysql.com) (проверьте с rpm -qa | grep -i mysql
), удалите их и установите те, которые входят в стандартные дистрибутивы репозиториев yum. Возможно, вам придется просто удалить их все, а затем установить то, что вам нужно.