RODBC 连接在 opencpu 中失败

RODBC connection failing in opencpu

我需要通过 opencpu 在 SQL 服务器上获取数据。 RODBC 与单用户版本的 opencpu 完美配合。但是在云服务器上我得到这个错误:

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

完全相同的函数在 Rstudio 服务器上完美地获取数据(相同的服务器 ubuntu 16.04,相同的连接字符串,使用驱动程序 FreeTDS)。

ODBC 是否缺少一些特殊的驱动程序设置才能与 opencpu 一起使用?

终于找到 this question 帮了大忙。

看起来问题出在 AppArmor 上。通过打开 /var/log/kern.log 我意识到有一些规则要添加到 /etc/apparmor.d/opencpu.d/custom

例如,如果您使用 msodbcsql,/etc/apparmor.d/opencpu.d/custom 中的以下行应该有效:

/opt/microsoft/msodbcsql/** r,

别忘了重启apparmor:

sudo service apparmor restart