【问题标题】:Cannot connect to SQL Server 2014 via java无法通过 java 连接到 SQL Server 2014
【发布时间】:2016-03-10 02:01:51
【问题描述】:

问题已更新(不再手动加载 DriverManager,而是使用 getConnection() 方法):

package guii;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * This program demonstrates how to establish database connection to Microsoft
 * SQL Server.
 * @author www.codejava.net
 *
 */
public class JdbcSQLServerConnection {

public static void main(String[] args) {

    Connection conn = null;

    try {

        String dbURL = "jdbc:sqlserver://ASUS\\YES:1433";
        String user = "TestingUser";
        String pass = "12345";
        conn = DriverManager.getConnection(dbURL, user, pass);
        if (conn != null) {
            DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData();
            System.out.println("Driver name: " + dm.getDriverName());
            System.out.println("Driver version: " + dm.getDriverVersion());
            System.out.println("Product name: " + dm.getDatabaseProductName());
            System.out.println("Product version: " + dm.getDatabaseProductVersion());
        }

    } catch (SQLException ex) {
        ex.printStackTrace();
    } finally {
        try {
            if (conn != null && !conn.isClosed()) {
                conn.close();
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
}
}

问题是此代码产生的异常。我不知道抛出该特定异常的原因。

用户名、密码和服务器名经过双重检查,确定无误。

目前抛出此异常:

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'TestingUser'.
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:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at guii.JdbcSQLServerConnection.main(JdbcSQLServerConnection.java:25)

【问题讨论】:

  • 你的服务器名真的是String server="ASUS\\YES"; ?
  • 我不确定,但我在 Microsoft SQL Server Management Studio 中检查了服务器的属性,它是这样列出的。或者任何其他方式来找出服务器名称??
  • 您是否尝试过使用 Windows 身份验证?
  • 你的意思是用java试试??
  • 是的。看这个问题[stackoverflow.com/questions/6938717/…供参考

标签: java sql-server jdbc database-connection sql-server-2014-express


【解决方案1】:

疑难解答说明

  1. 再次使用integratedSecurity=true

  2. 检查您的 system32 文件夹中是否有 sqljdbc_auch.dll 查看this link 确保使用正确的(32 位与 64 位) 确保 sqljdbc_auch.dll 在 Windows 系统路径中

  3. 检查您的服务器实例的属性是否设置正确:访问权限,确保它实际侦听端口 1433,... 查看this link,不仅要查看已接受的答案,还要查看其他两个答案。

  4. 确保您的防火墙不会阻止任何连接

  5. 检查您的 Java 版本是否与您使用的 jdbc 版本匹配 sqljdbc4.2 需要 Java 1.8,jdbc4.1 需要 java 1.7。 look here

【讨论】:

  • @jiahao 到底对你有什么帮助?
  • 您给我的答案对我有帮助,但现在的问题是我无法通过我的用户名和密码连接它。而且我无法使用查询访问我的表。我已经将我的查询(表)更改为 [Database Name].[Schema].[Table Name] 仍然相同,错误是无效的对象名称。请帮帮我。
  • 我认为如果您已经连接到数据库 [Schema].[Table Name] 应该就足够了。还要检查您的访问权限,以便您可以使用 windows 用户访问您的表。这应该可以解决您的问题。
  • 如何查看windows用户是否可以访问??
  • 这实际上不在此问题的范围内,但您应该检查role management
猜你喜欢
  • 2015-10-30
  • 1970-01-01
  • 2016-06-16
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-08
  • 1970-01-01
相关资源
最近更新 更多