Linux Fedora - как создать DSN базы данных в экземпляре MySQL, работающем на локальном хосте для использования RODBC?

2466
Jubbles

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

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

0

1 ответ на вопрос

0
Tony Cesaro

I was able to reproduce your issue on CentOS 6.3. After that, I installed the mysql-connector-odbc package: yum install mysql-connector-odbc and it was then able to connect to the MySQL database. First, remove what you have manually added to /etc/odbcinst.ini and then install mysql-connector-odbc, which will update /etc/odbcinst.ini for you. Give that a shot and run your script again, then let us know if the issue is still occurring.

Also, it sounds like there are some incompatible packages installed. If you have any that start with MySQL- (from mysql.com) (check with rpm -qa | grep -i mysql), remove them and install those that are part of the standard distributions yum repositories. You may need to just remove them all and then install what you need.

Похожие вопросы