当前位置: 首页 > 知识库问答 >
问题:

来自solr的数据源sql server连接

别子实
2023-03-14

从solr连接到sql server时出现问题。

我已经尝试了以下连接

<dataSource type="JdbcDataSource" name="ds1"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
url="jdbc:sqlserver://localhost;databaseName=189021-resurs;integratedSecurity=true;responseBuffering=adaptive;"   
readOnly="true"
/>


<dataSource type="JdbcDataSource" driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"  
   url="jdbc:sqlserver://localhost\ARBETSDATOR\SQLEXPRESS;integratedSecurity=true;databaseName=189021-resurs"/>  

我正在尝试使用IntegratedSecurity=true,可以吗?

tcp/ip已启用。

我已经看到了connectionstring的以下部分的变体:jdbc:sqlserver://ARBETSDATOR\SQLEXPRESS

或者只是localhost:jdbc:sqlserver://localhost;

?

使用jdbc时:sqlserver://localhost; 我得到以下信息:

完全导入失败:org.apache.solr.handler.dataimport.运行时异常:uilder.do运行时异常:uilder.java:323数据重要处理异常:无法执行查询:选择*来自成员处理文档#1在org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:231)在org.apache.solr.handler.dataimport.数据org.apache.solr.handler.dataimport.完全导入(数据xception.wrap)在xception.java:71数据org.apache.solr.handler.dataimport.Cmd(数据ource.java:279)在org.apache.solr.handler.dataimport.数据输入$1.run(数据mporter.java:457)原因:java.lang.运行时异常:org.apache.solr.handler.dataimport.数据重要处理异常:无法执行查询:选择*来自成员处理文档#1在org.apache.solr.handler.dataimport.DocBuilder.build文档(DocBuilder.java:410)在java.lang.DocBjava.lang.FullDump(DocBorg.apache.solr.handler.dataimport.)在org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:270)...3更多原因:org.apache.solr.handler.dataimport.数据重要处理异常:无法执行查询:选择*来自成员处理文档#1在mporter.do数据重要处理程序mporter.java:411投掷(数据重要处理程序org.apache.solr.handler.dataimport.)在mporter.runJdbcDataSource$ResultSetIterator。(JdbcDataSmporter.java:476)在org.apache.solr.handler.dataimport.JdbcDataSsqlEntityProcessor. initQuery(SqlEntityProcessor. java: 59)在org. apache. solr. handler. dataimport。SqlEntityProcessor. nextRow(SqlEntityProcessor. java: 73)在org. apache. solr. handler. dataimport。EntityProcessorWrapper. nextRow(EntityProcessorWrapper. java: 243)在org. apache. solr. handler. dataimport。DocBuilder. buildDocument(DocBuilder. java: 469)在org. apache. solr. handler. dataimport。DocBuilder. buildDocument(DocBuilder. java: 408)...5更多由以下原因引起:com. microsoft. sqlserver. jdbc。SQLServerException:TCP/IP-anslutningen直到värddatorn localhost,端口1433 mislyckjdbcDataSource. call(JdbcDataSource. java: 149)在org. apache. solr. handler. dataimport。JdbcDataSource 1美元. call(JdbcDataSource. java: 129)在org. apache. solr. handler. dataimport。JdbcDataSource. getConnection(JdbcDataSource. java: 392)在org. apache. solr. handler. dataimport。JdbcDataSource. access 200美元(JdbcDataSource. java: 40)在org. apache. solr. handler. dataimport。JdbcDataSource$ResultSetIterator。(JdbcDataSource. java: 266)

基本上是说,到sql server的tcp/ip连接失败了。我已确保其已启用,因此无法启用。

使用jdbc时:sqlserver://localhost\ARBETSDATOR\SQLEXPRESS;

我收到以下错误消息:

处理时出现异常:成员文档:SolrInputDocument(字段:[]):org。阿帕奇。solr公司。处理程序。数据导入。DataImportHandlerException:无法执行查询:从组织处理文档#1的成员中选择*。阿帕奇。solr公司。处理程序。数据导入。DataImportHandlerException。org上的wrappandthrow(dataimportandlexexception.java:71)。阿帕奇。solr公司。处理程序。数据导入。JdbcDataSource$ResultSetTiterator。(JdbcDataSource.java:279)位于org。阿帕奇。solr公司。处理程序。数据导入。JdbcDataSource。org上的getData(JdbcDataSource.java:236)。阿帕奇。solr公司。处理程序。数据导入。JdbcDataSource。org上的getData(JdbcDataSource.java:40)。阿帕奇。solr公司。处理程序。数据导入。SqlEntityProcessor。位于org的initQuery(SqlEntityProcessor.java:59)。阿帕奇。solr公司。处理程序。数据导入。SqlEntityProcessor。位于org的nextRow(SqlEntityProcessor.java:73)。阿帕奇。solr公司。处理程序。数据导入。EntityProcessorWrapper。位于org的nextRow(EntityProcessorWrapper.java:243)。阿帕奇。solr公司。处理程序。数据导入。DocBuilder。org上的buildDocument(DocBuilder.java:469)。阿帕奇。solr公司。处理程序。数据导入。DocBuilder。org上的buildDocument(DocBuilder.java:408)。阿帕奇。solr公司。处理程序。数据导入。DocBuilder。doFullDump(DocBuilder.java:323)位于org。阿帕奇。solr公司。处理程序。数据导入。DocBuilder。在org上执行(DocBuilder.java:231)。阿帕奇。solr公司。处理程序。数据导入。数据导入器。doFullImport(DataImporter.java:411)位于org。阿帕奇。solr公司。处理程序。数据导入。数据导入器。org上的runCmd(DataImporter.java:476)。阿帕奇。solr公司。处理程序。数据导入。数据导入器1美元。运行(DataImporter.java:457)的原因是:com。微软sqlserver。jdbc。SQLServerException:Anslutingen till värddatorn localhost,den namngivna instansen arbetsdator\sqlexpress,misslyckades。菲尔:爪哇。网SocketTimeoutException:接收超时。Verifiera服务器-och InstansNMN och kontrollera att ingen brandvägg Blocker UDP trafik,直到端口1434。Kontrolleraävenför SQL Server 2005 eller senare att tjänsten SQL Server浏览器körs påvärddatorn。在com。微软sqlserver。jdbc。SQLServerException。在com上生成FromDriverError(SQLServerException.java:190)。微软sqlserver。jdbc。SQLServerConnection。com上的getInstancePort(SQLServerConnection.java:3589)。微软sqlserver。jdbc。SQLServerConnection。com上的primaryPermissionCheck(SQLServerConnection.java:1225)。微软sqlserver。jdbc。SQLServerConnection。在com上登录(SQLServerConnection.java:972)。微软sqlserver。jdbc。SQLServerConnection。在com上连接(SQLServerConnection.java:827)。微软sqlserver。jdbc。SQLServerDriver。在org上连接(SQLServerDriver.java:1012)。阿帕奇。solr公司。处理程序。数据导入。JdbcDataSource 1美元。在org上调用(JdbcDataSource.java:149)。阿帕奇。solr公司。处理程序。数据导入。JdbcDataSource 1美元。在org上调用(JdbcDataSource.java:129)。阿帕奇。solr公司。处理程序。数据导入。JdbcDataSource。位于org的getConnection(JdbcDataSource.java:392)。阿帕奇。solr公司。处理程序。数据导入。JdbcDataSource。访问org上的200美元(JdbcDataSource.java:40)。阿帕奇。solr公司。处理程序。数据导入。JdbcDataSource$ResultSetTiterator。(JdbcDataSource.java:266)

非常感谢您的帮助

更新

新错误消息:

Exception while processing: member document : SolrInputDocument(fields:[]):org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT * FROM Members Processing Document # 1
at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:279)
at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:236)
at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:40)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73)
at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:243)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:469)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:408)
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:323)
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:231)
at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:411)
at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:476)
at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:457)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Drivrutinen är inte konfigurerad för integrerad autentisering. ClientConnectionId:eb7b4593-8238-4d7a-92bc-7ffb520e3d9c
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1667)
at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<init>(AuthenticationJNI.java:60)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2229)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcDataSource.java:149)
at org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcDataSource.java:129)
at org.apache.solr.handler.dataimport.JdbcDataSource.getConnection(JdbcDataSource.java:392)
at org.apache.solr.handler.dataimport.JdbcDataSource.access$200(JdbcDataSource.java:40)
at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:266)
... 12 more
Caused by: java.lang.UnsatisfiedLinkError: no sqljdbc_auth in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<clinit>(AuthenticationJNI.java:35)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2229)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcDataSource.java:142)

一行不是英文的,它说驱动程序没有配置为集成身份验证。

共有1个答案

杨征
2023-03-14

您的连接字符串应该如下所示:jdbc:sqlserver://localhost:1433;实例=SQLEXPRESS;数据库名称=189021-resur;集成安全=true;

然后还要检查默认情况下MS SQL Server Express是否配置为使用动态TCP/IP端口,如命名实例。进入“IP地址”选项卡上的Sql Server Configuration Manager open Sql Server 2005(这可能与您的不同)Network Configuration open Protocols for SQLEXPRESS open TCP/IP properties,在底部检查“TCP Dynamic Ports”是否有值。

如果是,请清除该值并将该字段留空。然后将“TCP端口”更改为1433或您决定的任何端口。

 类似资料:
  • 本文向大家介绍Linux环境中使用BIEE 连接SQLServer业务数据源,包括了Linux环境中使用BIEE 连接SQLServer业务数据源的使用技巧和注意事项,需要的朋友参考一下 1、客户端     在客户端首先配置odbc数据源,可以直接在运行中输入odbcad32,打开配置界面--系统DNS---添加     选择SQLserver的相关驱动,一般选择wire protocol型的驱动

  • 来自数据库表的REST资源 我最近学习了一些关于REST的东西(其中许多我部分理解)。我也做了一些简单的演示,这些演示不是很rest,但至少我尝试了一些resting的东西。但是,当涉及到从零开始开发一些真实世界的应用程序时,我就笨手笨脚了。 null 这个问题是我之前关于如何基于一些表以restful方式决定资源的问题的延续 请不要说没有这样规定的标准。应该有一个:。我只是要求一个方法…只是一些

  • Tableau可以与广泛使用的所有可访问数据源连接。它可以链接到Excel文件,PDF文件,文本文件等。它还可以使用其ODBC连接器连接到各种数据库。Tableau可以连接到Web连接器和服务器。 Tableaus本机连接器可以连接到以下类型的数据源: 文件系统:如Microsoft Excel,CSV等。 云系统:例如Google bigQuery,Windows Azure等。 关系系统:如M

  • 我有一个MS SQLServer 2008 a数据库,名为:“conpool”。并在那里创建了一个具有id、全名和年龄的表。现在,我已经在Netbeans 7.3和Tomcat 7.0.30中的Java中实现了一个连接池,以避免每次都将连接绑定到我的数据库,并且我可以对数据库进行查询。 我的连接池: //------------------------Beginn JDBC连接池---------

  • 我有一个用例,我必须合并来自2个表(位于不同的数据源中)的数据。考虑到每个表都有员工数据(名字、姓氏、phoneNumber)。对于每个员工,我必须合并来自两个表的phoneNumber数据,其他数据将与表1中的相同 如果表1和表2中都有员工数据,则电话号码数据将合并为逗号分隔的值,其他数据将来自表1 这些表每个表大约有40行缺少数据。接近5GB。在Java中实现这一点的最佳方法是什么?我担心的是

  • 嗨,我刚刚按照Ryan Bates的指南从服务器加载数据,因为客户端与可数据交互。 http://railscasts.com/episodes/340-datatables?view=asciicast 在他的产品数据类中,他定义了一个排序函数: 基本上,列名用于查询数据库,因此“名称”、“类别”等都是产品模型的属性。因此,将生成一个SQL SELECT语句,其名称或类别用于对ASC或DESC进