com.microsoft.sqlserver.jdbc.SQLServerException: 到主機 的 TCP/IP 連接失敗。 java.net.ConnectException: Connection refused: connect


 

問題描述:最簡單的數據庫連接報錯,到主機  的 TCP/IP 連接失敗。(win 7 操作系統)

錯誤信息:

com.microsoft.sqlserver.jdbc.SQLServerException: 到主機  的 TCP/IP 連接失敗。 java.net.ConnectException: Connection refused: connect

package sqlconnect;
import java.sql.*;
public class sqlconnect {
    public static void main(String[] args) {
        String user = "zcj";
        String password = "123";
        String url = "jdbc:sqlserver://localhost:1433;DatabaseName=lol";
        String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        String tableName = "lol";
        String sqlstr;
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        try{
            Class.forName(driver);
            con = DriverManager.getConnection(url,user,password);
            stmt = con.createStatement();
            sqlstr = "insert into " + tableName + " values('333','333')";
            stmt.executeUpdate(sqlstr);
            sqlstr = "select * from " + tableName;
            rs = stmt.executeQuery(sqlstr);
            ResultSetMetaData rsmd = rs.getMetaData();
            int j = 0;
            j = rsmd.getColumnCount();
            for(int k=0;k<j;j++){
                System.out.print(rsmd.getColumnName(k+1));
                System.out.print("/t");
            }
            System.out.println();
            while(rs.next()){
                for(int i=0;i<j;i++){
                    System.out.print(rs.getString(i+1));
                    System.out.print("/t");
                }
                System.out.println();
            }
        } 
        catch(ClassNotFoundException e1){
            System.out.println("數據庫驅動不存在");
            System.out.println(e1.toString());
        }
        catch(SQLException e2){
            System.out.println("數據庫存在異常");
            System.out.println(e2.toString());
        }
        finally{
            try{
                if(rs != null)
                    rs.close();
                if(stmt != null)
                    stmt.close();
                if(con != null)
                    con.close();
            }
            catch(SQLException e){
                System.out.println(e.toString());
            }
        }
    }
}

解決方式:

  安裝SQL Server 2008后。在目錄下找到SQL Server Configuration Manager這個工具,然后在左邊的目錄中找到SQL Server 2008網絡配置下的MSSQLSERVER,點擊后右側列出了所有協議,找到TCP/IP,發現是禁用狀態,啟用后再重啟MSSQLSERVER服務即可(此步驟必須!),此項可在該工具下的SQL Server 2008服務中找到,或在windows服務中找到。

可能的其他解決方式:

  網上有許多答案是TCP端口不是1433,查看真實的端口並在代碼中修改即可。 可在SQL Server 2008網絡配置下的MSSQLSERVER,點擊后右側列出了所有協議,找到TCP/IP,雙擊,找到IP地址,里面有IP地址和端口號修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM