将java与sql server 2017连接时出错
Posted
技术标签:
【中文标题】将java与sql server 2017连接时出错【英文标题】:errors while connecting java with sql server 2017 【发布时间】:2017-06-05 22:36:22 【问题描述】:public class RDF2Connection
static Connection connection=null;
final static String connectionUrl = "jdbc:sqlserver://DESKTOP-Q5K9FE6:1433;" +
"databaseName=RDFDB;";
public static Connection getRdf2Connected()
try
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection(connectionUrl, "sa", "root");
catch (ClassNotFoundException e)
e.printStackTrace();
catch (SQLException e)
e.printStackTrace();
return connection;
com.microsoft.sqlserver.jdbc.SQLServerException: TCP/IP 连接 到主机 DESKTOP-Q5K9FE6,端口 1433 失败。错误:“连接 拒绝:没有进一步的信息。验证连接属性。 确保 SQL Server 实例正在主机上运行,并且 在端口接受 TCP/IP 连接。确保 TCP 与端口的连接不会被防火墙阻止。”。 在 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:206) 在 com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:257) 在 com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2385) 在 com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:567) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1955) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1616) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1447) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:788) 在 com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1187) 在 java.sql.DriverManager.getConnection(DriverManager.java:664) 在 java.sql.DriverManager.getConnection(DriverManager.java:247) 在 com.rdf2.databaseconnection.RDF2Connection.getRdf2Connected(RDF2Connection.java:22) 在 MainClass.main(MainClass.java:53) java.lang.NullPointerException 在 MainClass.main(MainClass.java:54)
进程以退出代码 0 结束
【问题讨论】:
可能与this重复 检查 netbios 名称是否解析到服务器。尝试改用 ipadress 吗?或者说 Mssqlserver 正在运行。 看看this。你添加了dll吗?Connection refused: no further information. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall
: 很清楚。
【参考方案1】:
您能否查看 SQL Server 是否仅在侦听 IPv6 端口?如果是这样,您可以使用以下
System.setProperty("java.net.preferIPv6Addresses", "true");
就代码更改而言,这将是我唯一的建议。可能尝试使用 IP 而不是名称。如果这不起作用,您需要转到您的 SQL Server 并验证它是否接受 TCP/IP 连接,或者检查您的本地防火墙设置。那时这个问题更适合服务器交换。
【讨论】:
我已经有一段时间没有使用 SQL Server 了。只需使用该行构建一个新程序,看看是否仍然出现相同的错误【参考方案2】:只要确保这是正确的端口
这才是真正的答案 谢谢。
【讨论】:
以上是关于将java与sql server 2017连接时出错的主要内容,如果未能解决你的问题,请参考以下文章
vs添加数据库连接 在与sql server 建立连接时出现与网络相关或特定于实例的错误 40-无法打开到Sql server的连接
vs添加数据库连接 在与sql server 建立连接时出现与网络相关或特定于实例的错误 40-无法打开到Sql server的连接
从 Java 连接到 SQL Server 2016 时出现 EXCEPTION_ACCESS_VIOLATION
sql server 2008 在与 SQL Server 提示建立连接时出现与网络相关的或特定于实例的错误
在与SQL Server建立连接时出现与网络相关的或特定实例的错误
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法訪问server。请验证实例名称是否正确而且 SQL Server 已配置为同意远程连接。