RODBC не распознает мои настройки odbc
Я использую R 2.15.2 на сервере Red Hat Linux 6. Моя цель - подключиться к базе данных MS SQL Server на другом компьютере через RODBC. Я провел исследование, скачал и установил версию ODBC-драйвера для MS SQL из Linuxвеб-сайт поддержки Microsoft, Я должен был собрать UnixODBC версии 2.3.0 из исходного кода, потому что это требуется для драйвера Windows и еще не в репозитории RHL (версия репо 2.2.14).
Во всяком случае, после небольшой работы, я наконец установил и настроил драйвер должным образом, и я могу успешно подключиться к базе данных SQL Server черезisql
команда:
$ isql -v test testuser testpass
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
так что я знаю, что у меня естьodbc.ini
а такжеodbcinst.ini
файлы правильно настроены.
Однако, когда я пытаюсь получить доступ к соединению ODBC изнутри R, происходит следующее:
> test <- odbcDriverConnect('DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass')
Warning messages:
1: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") :
[RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data
source name not found, and no default driver specified
2: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") :
ODBC connection failed
Вот результатodbcDataSources
команда в R:
> odbcDataSources()
named character(0)
Я проводил некоторые исследования и думаю, что решение (хотя я могу ошибаться) может иметь какое-то отношение к правильной настройке переменных среды ODBC, чтобы RODBC знал, где искатьodbc.ini
, Основываясь на своих исследованиях, я обнаружил следующие переменные среды, которые могут иметь значение:$ODBCINI, $ODBCSYSINI, $ODBC_ROOT $ODBC_INCLUDE, and $ODBC_LIBS.
У меня есть разумное представление о том, что они должны быть установлены, но я не уверен, как установить их постоянно, и чтобы RODBC мог распознать, где найти соответствующие файлы.
Кто-нибудь может пролить свет на это для меня? Я не уверен, что правильно понимаю, как переменные окружения работают в Linux, и особенно почемуisql
не имеет проблем с подключением, ноRODBC
даже не могу найти драйвер / источник данных.
ПРИМЕЧАНИЕ: когда у меня была установлена версия репозитория unixODBC для репозитория, RODBC установился бы отлично, используяinstall.packages('RODBC')
Команда в R. Однако после того, как я установил unixODBC 2.3.0 из источника, установка RODBC не удалась из-за проблемы с зависимостями, и мне пришлось установить RODBC из источника, используяруководство размещено здесь, Возможно ли, что я не смог правильно настроить ODBC, и поэтому у меня сейчас проблемы?