为了使用r库rjdbc来运行sql查询,我在计算机上安装了sqljdbc驱动程序。
正如我以前在其他机器上所做的那样,在r中安装rjdbc包之前,我已经将mssql-jcb\u auth-8.4.1.x64.dll复制到java/jdk-…/bin目录。
当我尝试从r连接到sql服务器时,即。
dbhandle = dbConnect(drv, "jdbc:sqlserver://dw_sqlXX_YY; databaseName=my_db; integratedSecurity=true;")
我收到以下错误消息:
Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], : com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:83a3242e-097f-4a69-9eed-d1ccbecadc7b
我查了“未配置集成身份验证的驱动程序”,发现了一个相关的stackoverflow post,
jdbc sqlserverexception:“此驱动程序未配置为集成身份验证。”
在指示用户的地方,请确保.dll同时位于驱动程序目录和java的bin目录中。我已经满足了这些要求,以及64位兼容性问题。
还有什么我可能错过的,我可以试试吗?驱动程序版本(我有8.4)和jdkjava的最新版本或r中的rjdbc包之间是否存在不兼容的问题?似乎我已经用尽了其他的选择。
2条答案
按热度按时间q3aa05251#
将dll放在一个目录中,并将该目录添加到path环境变量中。这是推荐的方法(将它放在jdk的bin文件夹中并不一定有效,而且它可能是“错误的”jdk)。另请参见在windows上连接集成身份验证。
eoigrqb62#
一开始我也有很多问题。试试这个:
如果不起作用,请检查以下内容:
上课没问题。
路径正常。
用户名和密码正常。
您已经安装了java。
您已经安装了rjava和dbi包。
但是,我建议您使用rodbc包。rodbc效率更高,没有尺寸限制,您不需要高技术知识。这里有一个很好的教程。