Когнитивная психология и эмоции
Субъективные заметки постдока-психолога
Записи в рубрике «MySQL»

Подключение к MySQL в R под Ubuntu с использованием RODBC

22 марта 2012, анализ данных Метки: , , ,

Много страшных слов в заголовке вышло.
Есть 2 (известных мне) способа подключиться к базе данных MySQL ищ R: RMySQL и RODBC. Про RMySQL под Windows я уже писал, под Ubuntu с установкой RMySQL вообще проблем нет (sudo apt-get install r-cran-rmysql). Но у меня почему-то последнюю неделю RMySQL глючит, постоянно выдавая ошибки:

Warning messages:
1: In mysqlFetch(res, n, ...) :
  RS-DBI driver warning: (error while fetching rows)
2: In mysqlQuickSQL(conn, statement, ...) : pending rows

Поэтому я решил попробовать второй способ, RODBC.
Установка:

sudo apt-get install iodbc libmyodbc unixodbc-dev r-cran-rodbc

Запускаем «odbcinst -j»:

unixODBC 2.2.14
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/ralfer/.odbc.ini

Редактируем odbcinst.ini, добавляем информацию о драйвере mysql:

[MySQL]
Description     = MySQL driver
Driver          = /usr/lib/odbc/libmyodbc.so
Setup           = /usr/lib/odbc/libodbcmyS.so

Добавляем информацию о подключении в .odbc.ini (USER DATA SOURCES):

[test]
Driver   = MySQL
database = dbname
password = pass
server   = www.host.com
user     = user_name
uid      = user_name

Проверяем:

$ odbcinst -q -s
[test]
$ odbcinst -q -d 
[MySQL]
$ isql test
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

Запускаем R, подключаем RODBC:

#проверяем наличие подключения
> odbcDataSources()
test      
  "MySQL" 
> library(RODBC)
#подключаемся
> con <-odbcDriverConnect("dsn=test")
> con
RODBC Connection 1
Details:
  case=nochange
  dsn=tests
#запрос делается так
> sqlQuery(con, "запрос")

Все.

Большая часть информации о настройке ODBC почерпнута отсюда.

UPD: В случае ошибки «Can’t open lib ‘/usr/lib/odbc/libmyodbc.so’ : file not found» , найдите у себя libmyodbc.so и сделайте линк.

Подключение R к базе данных MySQL под Windows

26 марта 2011, заметки Метки: , , ,

Задача: получить доступ из R напрямую к данным MySQL.

Для решения понадобятся RTools, библиотеки MySQL и пакет RMySQL.
продолжение »