【问题标题】:Port number is not correct while connecting to sql server连接sql server时端口号不正确
【发布时间】:2014-04-20 03:20:32
【问题描述】:

我正在尝试从 Netbeans 连接到 SQL Server,如下所示。我的项目库中有 sqljdbc4.jar。

try{
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    connRemoteforGlobal = java.sql.DriverManager.getConnection("jdbc:sqlserver://xx.xx.x.xxx:1433/test",RemoteSQLServerUser,RemoteSQLServerPass);

    if(connRemoteforGlobal != null)
    {
        System.out.println("Connection Successful !");
    }
}
catch(SQLException ex2){
    ex2.printStackTrace();
    System.out.println("Error Trace in Connection : " + ex2.getMessage());
}

并得到以下错误:

netbeans 或我的连接中是否需要任何其他设置?端口号?

Error Trace in Connection : The port number 1433/test is not valid.
com.microsoft.sqlserver.jdbc.SQLServerException: The port number 1433/test is not valid.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:691)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at mypackage.myclass.call(myclass.java:408)
    at mypackage.myclass.call(myclass.java:25)
    at javafx.concurrent.Task$TaskCallable.call(Task.java:1259)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

【问题讨论】:

标签: java netbeans jdbc driver


【解决方案1】:

应该是:

jdbc:sqlserver://xx.xx.x.xxx:1433;databaseName=Test

这是格式:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

http://technet.microsoft.com/en-us/library/ms378428.aspx

查看http://technet.microsoft.com/en-us/library/ms378988.aspx 的属性。反正1433好像是默认端口号所以没必要指定。

【讨论】:

  • 顺便说一句,我正在连接到 SQL Server 2008,并且该链接具有 SQL Server 2012 的设置。?
  • 我猜它没有改变。试一试。
  • 我把它改成了这样:connRemoteforGlobal = java.sql.DriverManager.getConnection("jdbc:sqlserver://xx.xx.x.xxx\test;databaseName=mydatabasename",RemoteSQLServerUser,RemoteSQLServerPass); 但现在似乎什么都没有打印。连,连接成功消息
  • 为什么在 xx.xx.x.xxx 之后一直在添加测试。文档清楚地指出它不是正确的格式?我什至给了你一个连接字符串。
  • 因为文档说`instanceName(可选)是要连接到 serverName 上的实例。如果未指定,则连接到默认实例. anyways, even after removing it, I don't see any changes : I did the following this time :jdbc:sqlserver://xx.xx.x.xxx;databaseName=mydatabasename",RemoteSQLServerUser,RemoteSQLServerPass`
猜你喜欢
  • 2018-01-20
  • 2011-07-14
  • 1970-01-01
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
  • 1970-01-01
相关资源
最近更新 更多