2016-09-08 71 views
2

我需要通過opencpu在SQL Server上獲取數據。 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或類似。檢查'kern.log'中的'name ='參數後面寫的是什麼 – zerweck