Проблема подключения к базе данных Java с MS SQL Server 2005 с удаленного сервера - PullRequest
0 голосов
/ 09 августа 2010

Я пишу код Java для подключения к MS SQL Server 2005. MS SQL Server находится на удаленном сервере Windows Server 2003. Я пытаюсь использовать следующий код, но не могу установить соединение:

import java.*;

public class Connect {
     private java.sql.Connection con = null;
     private final String url = "jdbc:sqlserver://";
     private final String serverName="xxx.xxx.xxx.xxx"; 
     private final String portNumber = "1433";
     private final String databaseName="myDb"; 
     private final String userName ="user1";
     private final String password = "xxxx";     
     private final String selectMethod = "cursor";

     // Constructor
     public Connect() {}

     private String getConnectionUrl() {
          return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
     }

     private java.sql.Connection getConnection() {
          try {
              Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
              con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
               if(con!=null) System.out.println("Connection Successful!");
          } catch(Exception e) {
               e.printStackTrace();
               System.out.println("Error Trace in getConnection() : " + e.getMessage());
         }
          return con;
      }

     /*
          Display the driver properties, database details
     */

     public void displayDbProperties() {
                    System.out.println("Perform Operations ");

     }

     private void closeConnection() {
          try{
               if(con!=null)
                    con.close();
               con=null;
          }catch(Exception e){
               e.printStackTrace();
          }
     }
     public static void main(String[] args) throws Exception {
          Connect myDbTest = new Connect();
         // myDbTest.displayDbProperties();
     }
}

Но я получаю следующие исключения:

com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host  has failed. java.net.ConnectException: Connection refused: connect
        at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
Error Trace in getConnection() : The TCP/IP connection to the host  has failed. java.net.ConnectException: Connection refused: connect
Error: No active Connection

Я не понимаю, в чем проблема в приведенном выше коде, или мне нужно настроить некоторые параметры для подключения к удаленному серверу.

Пожалуйста, дайте мне ваше ценное предложение, которое может помочь мне решить эту проблему.

Ответы [ 3 ]

2 голосов
/ 10 августа 2010

Убедитесь, что ваш SQL Server настроен на использование TCP / IP.Включите его из приложения сетевой утилиты SQL Server.Также проверьте, что SQL Server использует порт 1433 (IP-адреса - IPAll - TCP-порт).

Попробуйте использовать "telnet1433 ". Если он не подключится, вы не сможете установить соединение.

1 голос
/ 24 мая 2012

РАЗРЕШИТЕ ​​ПЕРВУЮ ПОДКЛЮЧЕНИЕ, НА КОТОРОМ ПК РАБОТАЕТ ВАШ SQL СЕРВЕР ... ПЕРЕЙТИ НА ПАНЕЛЬ УПРАВЛЕНИЯ -> АДМИН. ИНСТРУМЕНТЫ ---> Брандмауэр Windows в режиме повышенной безопасности -> Неограниченные правила -> Новое правило -> Переключатель выбора порта -> Далее -> Введите порт 3306 -> Нажмите кнопку Далее -> В конце укажите имя правила как и все ... кликни финиш

1 голос
/ 09 августа 2010

ИМХО «Отказано в соединении» означает, что ваш сервер базы данных не виден с вашего сервера приложений.

  • Проверьте IP-адрес и порт.
  • Проверьте подключение базы данных непосредственно с вашего сервера базы данных (чтобы избежать брандмауэров).
  • Проверьте подключение к базе данных на сервере приложений.

Надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...