dataSource sql server来自solr的连接



从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://localhostARBETSDATORSQLEXPRESS;integratedSecurity=true;databaseName=189021-resurs"/>  

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

tcp/ip已启用。

我看到了连接字符串的以下部分的变体,应该是:jdbc:sqlserver://ARBETSDATOR\SQLEXPRESS

或者只是本地主机:jdbc:sqlserver://localhost;

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

完全导入失败:java.lang.RuntimeException:java.lang.RountimeException:org.apache.solr.handler.dataimport.DataImportHandlerException:无法执行查询:SELECT*FROM Members Processing Document#1网址:org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:270)网址:org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:411)网址:org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:476)网址:org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:457)导致原因:java.lang.RuntimeException:org.apache.solr.handler.dataimport.DataImportHandlerException:无法执行查询:SELECT*FROM Members Processing Document#1网址:org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:410)网址:org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:323)网址:org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:231)…还有3个导致原因:org.apache.solr.handler.dataimport.DataImportHandlerException:无法执行查询:SELECT*FROM成员正在处理文档#1网址:org.apache.solr.handler.dataimport.DataImportHandlerException.wrapaAndThrow(DataImportHandlerException.java:71)网址:org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator。(JdbcDataSource.java:279)网址:org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcSource.java:236)网址:org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcSource.java:40)网址:org.apache.solr.handler.dataimport.SqlEntityProcessor.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 till värddatorn localhost,端口1433 misslycades。Fel:"连接被拒绝:连接。Verifiera anslutningsegenskaperna。Kontrollera att en instans av SQL Server körs påvärddatorn som accepterar TCP/IP anslutningar påporten och att ingen brandvägg blockerar TCP anslutningr till porten。"。位于com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)位于com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)网址:com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)网址:com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)网址:com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)网址:com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)网址:com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)网址:com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)网址:org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcSource.java:149)网址:org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcSource.java:129)网址:org.apache.solr.handler.dataimport.JdbcDataSource.getConnection(JdbcSource.java:392)网址:org.apache.solr.handler.dataimport.JdbcDataSource.access$200(JdbcSource.java:40)网址:org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator。(JdbcDataSource.java:266)

这基本上是说与sql server的tcp/ip连接失败了。我已经确保它被启用了,所以这不可能是它。

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

我收到以下错误消息:

处理时出现异常:成员文档:SolrInputDocument(字段:[]):org.apache.solr.handler.dataimport.DataImportHandlerException:无法执行查询:SELECT*FROM Members processing document#1网址:org.apache.solr.handler.dataimport.DataImportHandlerException.wrapaAndThrow(DataImportHandlerException.java:71)网址:org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator。(JdbcDataSource.java:279)网址:org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcSource.java:236)网址:org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcSource.java:40)网址:org.apache.solr.handler.dataimport.SqlEntityProcessor.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)网址:org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:323)网址:org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:231)网址:org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:411)网址:org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:476)网址:org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:457)引起原因:com.microsoft.sqlserver.jdbc.SQLServerException:Anslutningen till värddatorn localhost,den namngivna instansen arbetsdatar\sqlexpress,misslycades。Fel:java.net.SocketTimeoutException:接收超时。验证服务器-och instansnamn och kontrollera att ingen brandvägg blockerar UDP trafik直到端口1434。Kontrolleraäven för SQL Server 2005 eller senare att tjänsten SQL Server Browser körs påvärddatorn。位于com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)位于com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(SQLServerConnection.java:3589)网址:com.microsoft.sqlserver.jdbc.SQLServerConnection.primaryPermissionCheck(SQLServerConnection.java:1225)网址:com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:972)网址:com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)网址:com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)网址:org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcSource.java:149)网址:org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcSource.java:129)网址:org.apache.solr.handler.dataimport.JdbcDataSource.getConnection(JdbcSource.java:392)网址:org.apache.solr.handler.dataimport.JdbcDataSource.access$200(JdbcSource.java:40)网址:org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator。(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)

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

您的连接字符串应该如下所示:jdbc:sqlserver://localhost:1433;instance=SQLEXPRESS;databaseName=189021 resus;integratedSecurity=true;

然后还检查默认情况下是否将MS SQL Server Express配置为使用动态TCP/IP端口,如命名实例。进入Sql Server配置管理器打开SQL SERVER 2005(这可能与您不同)网络配置SQLEXPRESS的开放协议打开TCP/IP属性在"IP地址"选项卡上,检查底部的"TCP动态端口"是否有值。

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

最新更新