2016-09-08 4 views
2

Мне нужно получить данные на SQL Server через opencpu. RODBC отлично работает с однопользовательской версией opencpu. Однако на облачном сервере, я получаю эту ошибку:Ошибка подключения RODBC в opencpu

first argument is not an open RODBC channel 
In call: 
RODBC::sqlQuery(dbhandle, sql_query) 

Сама же функция извлекает данные отлично на сервере Rstudio (тот же сервер Ubuntu 16,04, это же строки подключения, используя FreeTDS драйвера).

Есть ли специальные настройки драйвера, которые мне не хватает для ODBC для работы с opencpu?

ответ

1

Окончательно найдено this question, что очень помогло.

Похоже, что проблема была в AppArmor. Открывая /var/log/kern.log я понял, что есть некоторые правила, чтобы добавить в /etc/apparmor.d/opencpu.d/custom

1

В качестве примера, если вы используете msodbcsql, следующая строка в /etc/apparmor.d/opencpu.d/custom должно работать:

/opt/microsoft/msodbcsql/** r, 

Не забудьте перезапустить AppArmor:

sudo service apparmor restart 
+0

Если вы используете FreeTDS или другой драйвер в некоторой конфигурации, строка должна выглядеть как '/ usr/local/lib/r,/usr/local/lib/** r,' или аналогичная. Проверьте, что написано после параметра 'name =' в 'kern.log' – zerweck