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. Возможно, вам придется просто удалить их все, а затем установить то, что вам нужно.

Другие вопросы по тегам