Несколько предварительных -

ОС: 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, что и выше, я получил те же результаты.

1 ответ1

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .