微软sql服务器要关掉吗,SQL Server和JDBC:关闭连接。

Im getting

我得到

I/O Error: DB server closed connection.

I/O错误:DB服务器关闭连接。

while connecting to MS SQL server 2008 from java code .

在从java代码连接到MS SQL server 2008时。

SQL server is in mixed mode and its in local machine.My connection string is jTDS

SQL server处于混合模式,其在本地机器中。我的连接字符串是jTDS

jdbc:jtds:sqlserver://machineName:1433;databaseName=DB;integratedSecurity=true

jdbc:jtds::状态"置疑" / / machineName:1433;数据库名= DB;integratedSecurity = true

stack trace is

堆栈跟踪是

java.sql.SQLException: I/O Error: DB server closed connection. at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2311) at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:610) at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:345) at net.sourceforge.jtds.jdbc.ConnectionJDBC3.(ConnectionJDBC3.java:50) at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.app.hibernate.test.(test.java:22) at com.app.hibernate.test.main(test.java:53) Caused by: java.io.IOException: DB server closed connection. at net.sourceforge.jtds.jdbc.SharedSocket.readPacket(SharedSocket.java:848) at net.sourceforge.jtds.jdbc.SharedSocket.getNetPacket(SharedSocket.java:727) at net.sourceforge.jtds.jdbc.ResponseStream.getPacket(ResponseStream.java:466) at net.sourceforge.jtds.jdbc.ResponseStream.read(ResponseStream.java:103) at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2206) ... 8 more Exception in thread "main" java.lang.NullPointerException at com.app.hibernate.test.db(test.java:36) at com.app.hibernate.test.main(test.java:54)

java.sql。SQLException: I/O错误:DB服务器关闭连接。在net. sourceforge.jtds.jdbrc .login(tdscore.nexttoken, TdsCore.java:2311)的网站上可以找到。在java.sql.DriverManager getConnection(未知源)。getConnection(未知来源)在com.app.hibernate.test. test.(test.java:22)在com.app.hibernate.test.main(test.java:53)由:java.io引起。数据库服务器关闭连接。在net.sourceforge.jtd . jdbc.sharedsocket.readpacket (SharedSocket.java: sharedsocketketket.848)网站上,可以找到。线程“main”java.lang中还有8个异常。com.app.hibernate.test.db(test.java:36) com.app.hibernate.test.main(test.java:54)的NullPointerException

JDBC Driver

JDBC驱动程序

String url ="jdbc:sqlserver://machine:1433;instance=SQLEXPRESS;databaseName=db";

字符串url = " jdbc::状态"置疑" / /机:1433;实例= SQLEXPRESS;数据库名= db”;

stacktrace

加亮

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'username'. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:156) at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:240) at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:78) at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2636) at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2046) at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41) at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2034) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4003) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1550) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1207) at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(SQLServerConnection.java:1054) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:758) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.app.hibernate.test.(test.java:22) at com.app.hibernate.test.main(test.java:53) Exception in thread "main" java.lang.NullPointerException at com.app.hibernate.test.db(test.java:36) at com.app.hibernate.test.main(test.java:54)

com.microsoft.sqlserver.jdbc。SQLServerException:用户名的登录失败。在com.microsoft. microsoft.sqlserver.jdbc. sqlserver. sqlserverexception.makefromdatabaseerror (SQLServerException.java: 1556)位于com. microsoft.server.sqlserver .sqlserver.jdbc. tstokenhandler.oneof (tdsparser.java:240sql.microsoft.sqlserver . jdbc.sqlserverconnection.access $000(SQLServerConnection.java:41在com.microsoft.sqlserver. jdbc.sqlserverconnection.loginwithoutfail(SQLServerConnection.java:1054) com.microsoft.sqlserver.jdbc.SQLServerConnection.connect .connect(sqlserverconnection.sq.java:758) com. microa.microsoft.com/server.jdbc.sqlserver .sqlserver.在java.sql.DriverManager getConnection(未知源)。getConnection(未知源)在com.app.hibernate.test. test.(test.java:22)在com.app.hibernate.test.main(test.java:53)线程“main”java.lang中的异常。com.app.hibernate.test.db(test.java:36) com.app.hibernate.test.main(test.java:54)的NullPointerException

3 个解决方案

#1

3

Your Connection String and authentication have errors. if it is mix mode don't use SQL authentication

您的连接字符串和身份验证有错误。如果是混合型模式,不要使用SQL身份验证

Try this

试试这个

PC Name : janaka-pc SQL User Name : sa SQL Password

: 1234 Database : Janak_DB

PC名称:janaka-pc SQL用户名:sa SQL密码:1234数据库:Janak_DB。

Code for sql Conncetion in JDBC

JDBC中sql Conncetion的代码

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Connection conn = DriverManager.getConnection("jdbc:sqlserver://janaka-PC;user=sa;password=1234;database=Janak_DB");

forname(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);连接康涅狄格州= DriverManager.getConnection(" jdbc::状态"置疑" / / janaka-PC;用户= sa;密码= 1234;数据库= Janak_DB ");

#2

2

You have problems in your connection strings

您的连接字符串有问题

For jTDS:

jTDS:

jdbc:jtds:sqlserver://machineName:1433;databaseName=DB;useNTLMv2=tru‌​e;domain=workgroup

jdbc:jtds::状态"置疑" / / machineName:1433;数据库名= DB;useNTLMv2 = tru‌e;域=工作组

You may read http://jtds.sourceforge.net/faq.html#windowsAuth for the required Single-Sign-On library for NTLM to work.

您可以阅读http://jtds.sourceforge.net/faq.html#windowsAuth以获取NTLM所需的单点登录库。

"integratedSecurity=true" that you supplied for jdts is valid when using the JDBC driver

在使用JDBC驱动程序时,为jdts提供的“integratedSecurity=true”是有效的

jdbc:sqlserver://machine:1433;instance=SQLEXPRESS;databaseName=db;integratedSecurity=true

jdbc::状态"置疑" / /机:1433;实例= SQLEXPRESS;数据库名= db;integratedSecurity = true

#3

0

You have an authentication error in on the MS SQL side.

在MS SQL端有一个身份验证错误。

If you're not in control of how to adquire the connection (ie, you're using a Datasource or a Connection Pool), the connection URL must contain the login and password to be used, like:

如果您无法控制如何查询连接(例如,您正在使用数据源或连接池),则连接URL必须包含要使用的登录名和密码,如:

jdbc:sqlserver://machine:1433;instance=SQLEXPRESS;databaseName=db;user=USERNAME;password=PASSWORD";

If the application is running on a Windows machine and you want to use the credentials of the logged user, then you can specify the domain parameter with or without useNTLMv2.

如果应用程序在Windows机器上运行,并且您希望使用日志用户的凭据,那么可以使用useNTLMv2或不使用useNTLMv2指定域参数。

Finally, if you are on a windows machine but you want to authenticate the user against a domain, then you must supply the username, password and domain parameters. You can read all about it in the jtds FAQ, specially the URL Format section.

最后,如果您在windows机器上,但是您想对用户进行域身份验证,那么您必须提供用户名、密码和域参数。您可以在jtds FAQ中阅读所有相关内容,特别是URL格式部分。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值