Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RJDBC SQL查询:";此驱动程序未配置为集成身份验证“;_Java_R_Jdbc_Rjdbc - Fatal编程技术网

Java RJDBC SQL查询:";此驱动程序未配置为集成身份验证“;

Java RJDBC SQL查询:";此驱动程序未配置为集成身份验证“;,java,r,jdbc,rjdbc,Java,R,Jdbc,Rjdbc,为了使用R库RJDBC来运行SQL查询,我在计算机上安装了SQL JDBC驱动程序 正如我以前在其他机器上所做的那样,在R中安装RJDBC包之前,我已将mssql-jcb_auth-8.4.1.x64.dll复制到Java/jdk-…/bin目录 当我尝试从R连接到SQL server时,即 dbhandle = dbConnect(drv, "jdbc:sqlserver://dw_sqlXX_YY; databaseName=my_db; integratedSecurity=tr

为了使用R库RJDBC来运行SQL查询,我在计算机上安装了SQL JDBC驱动程序

正如我以前在其他机器上所做的那样,在R中安装RJDBC包之前,我已将mssql-jcb_auth-8.4.1.x64.dll复制到Java/jdk-…/bin目录

当我尝试从R连接到SQL server时,即

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帖子

在指示用户的位置,确保.dll位于Java的驱动程序目录和bin目录中。我已经满足了这些要求,以及64位兼容性问题


还有什么我可能错过的,我可以试试吗?驱动程序版本(我有8.4)和JDK Java的最新版本或R中的RJDBC包之间是否存在不兼容问题?似乎我已经用尽了大多数其他选择。

一开始我也遇到了很多问题。试试这个:

drv <- JDBC(driverClass = "class", classPath = "path")
dbhandle = dbConnect(drv, "jdbc:sqlserver://dw_sqlXX_YY; databaseName=my_db; integratedSecurity=true;", username, password)

drv将DLL放在一个目录中,并将该目录添加到PATH环境变量中。这是推荐的方法(将它放在JDK的bin文件夹中不能保证工作,而且可能是“错误的”JDK)。另请参见。

当您使用
/
指定Java路径时,这是Linux还是MacOS安装?如果是这样,Windows.dll将不适用于您。不,/而不是\是我的疏忽。这是一个Windows安装程序。您是否尝试将DLL放入目录中,并将该目录添加到PATH环境变量中?这实际上是推荐的方法(将它放在JDK的bin文件夹中并不一定有效,而且可能是“错误的”JDK)。另请参见使用DLL创建目录以及指向该DLL的路径。谢谢你的建议。奇怪的是,之前只需将其移动到/bin目录就可以了。我不知道为什么要让RJDBC在这台机器上工作会如此困难,在我的旧电脑上这是相当简单的,我也遵循同样的程序,尽管是在更新的软件包中。类、路径、用户名和密码都很好,我已经安装好了所有内容。我认为这可能是版本兼容性问题。鉴于错误是由Microsoft SQL Server JDBC驱动程序产生的,您可以确定驱动程序已加载并使用,因此也安装了Java、rJava和DBI。