2017-09-19 18 views
3

プログラミングに慣れていないので、SQLサーバからデータを抽出するログイン画面でこのチャットサーバを作っていました。私のラップトップでテストしたところ、データベースがどこにあるのかは分かりませんでした。 "... 2175ポートが故障している、TCP/IP接続localhostをホストするために、"リモートコンピュータを介してDBに接続しようとすると、SQLサーバの接続が拒否される

:私は

、別のデスクトップ上のコードを実行するために使用しようとしたとき、しかし、それは言い続けました

私はこれまでのところ、これらをやって試してみました:

  • は、TCP/IPプロトコルを有効に
  • セットポート1433
  • は、SQL Browserを実行
  • 再起動SQL Serverの(ビルトインアカウント]セクションで「ローカルサービス」に設定)2175
  • に動的ポートを設定(に設定されている「ネットワークサービス」をビルトインアカウント]セクション)

しかし、ファイアウォールの例外でのSQLServerを追加 - (すべてを許可するインバウンドとアウトバウンドの両方)

  • は、SQLServerのプログラムルールを作成 - (すべてを許可するインバウンドとアウトバウンドの両方)TCPポートルールの束を作成します何の効果もないようです。

    これは場合SQLserverに接続するために私のコードです:

    public boolean connect(String SQL) { 
        String connectionUrl = "jdbc:sqlserver://localhost:2175;" + 
        "databaseName=TestConnection;integratedSecurity=True;"; 
        Connection con = null; 
        Statement stm = null; 
        ResultSet rs = null; 
        boolean check = false; 
        try { 
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
         con = DriverManager.getConnection(connectionUrl); 
         stm = con.createStatement(); 
         if (SQL.contains("update") || SQL.contains("insert") || SQL.contains("delete") || SQL.contains("UPDATE") || SQL.contains("INSERT") || SQL.contains("DELETE")) { 
          int clu = stm.executeUpdate(SQL); 
          if (clu == 0) 
           check = false; 
          else 
           check = true; 
         } 
         else { 
          rs = stm.executeQuery(SQL); 
          while (rs.next()) { 
           System.out.println(rs.getString(1) + " | " + rs.getString(2)); 
           check = true; 
          } 
         } 
        } catch (ClassNotFoundException | SQLException e) { 
         e.printStackTrace(); 
        } finally { 
         if (rs != null) try { rs.close(); } catch(Exception e) {} 
         if (stm != null) try { stm.close(); } catch(Exception e) {} 
         if (con != null) try { con.close(); } catch(Exception e) {} 
        } 
    
        return check; 
    } 
    

    私は、SQLサーバー2016を使用しています、私はこの問題について議論する話題のそこにいるトンを知っているが、私は解決策を見つけるように見えることはできません。

    私のコードを実行しようとしているデスクトップには、SQLサーバーがインストールされていません。それは必要ですか?

  • 答えて

    5
    String connectionUrl = "jdbc:sqlserver://localhost:2175;" + 
        "databaseName=TestConnection;integratedSecurity=True;"; 
    

    コードの上を意味し、あなたが同じマシン(つまりlocalhost)にインストールされているデータベースに接続しようとしています。

    リモートサーバーに接続しようとしている場合は、代わりにそのIPアドレスを使用する必要があります。また、同じネットワークにいることを確認する必要があります(そのIPアドレスを使用してそのマシンにpingを試みてください)。

    +0

    私はそれを知らなかった。どうもありがとうございました :) –

    関連する問題