我尝试测试与本地sql DB的连接。我有这段代码:
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=SocialFamilyTree;user=SOSCOMP");
}catch(Exception e){
System.out.println("Couldn't get database connection.");
e.printStackTrace();
}
我尝试了很多用户。我的Windows用户是SOSCOMP,没有密码。我也知道SQL 2008创建用户为“sys”“dbo”,我也试过这些。我总是得到:
Couldn't get database connection.
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'SOSCOMP'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2532)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1929)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1917)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1061)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:243)
at FT_Receiver.FT_Receiver.main(FT_Receiver.java:12)
有什么想法吗?
由于
答案 0 :(得分:16)
如果您尝试连接使用Windows身份验证的数据库,则可以在连接字符串中使用“integratedSecurity”选项。
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=SocialFamilyTree;integratedSecurity=true;");
答案 1 :(得分:8)
最近我已经完成了解决几乎相同问题的步骤
我的绝对踢球者是了解实例设置为侦听的IP地址和端口,以便在构建连接字符串时连接没有被拒绝。
此外,如果要使用Windows登录进行连接,则需要确保为混合模式身份验证配置SQL实例(即允许Windows和SQL登录)
答案 2 :(得分:3)
由于您收到此错误,因此Sql server正确侦听该端口。
如果要定义用户,请从树中转到Security->登录,右键单击登录文件夹,然后单击“新登录”。
现在您的服务器应该使用此Url字符串。 使用可帮助您了解其工作情况的服务器日志文件。
答案 3 :(得分:1)
回复:没错。仍然警告:无法加载sqljdbc_auth.dll原因: - java.library.path中没有sqljdbc_auth - Mike 10月7日14:03
如果从shell运行,则必须通过在Eclipse或命令行中的VM参数下添加此路径来添加sqljdbc_auth.dll的路径: -Djava.library.path =“\ MS SQL Server JDBC Driver 3.0 \ sqljdbc_3.0 \ enu \ auth \ x86”
如果你正在运行32位Windows,那就是。否则最后的子目录会相应改变。
我认为这可能是一个更好的答案,设置基于SQL Server用户的身份验证: Connecting SQL Server 2008 to Java: Login failed for user error
(我试着在这里总结一下:http://silveira.wikidot.com/sql-server)
答案 4 :(得分:0)
我也遇到了同样的问题,就我而言,以下内容配置错误