• 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地址和端口号修改。

  • 相关阅读:
    一个漂亮的lazarus做的pagecontrol
    预测,阿里盒子必将失败!
    sex在软件开发中的运用--SIX技术
    糟糕的@@identity,SCOPE_IDENTITY ,IDENT_CURRENT
    Delphi、Lazarus保留字、关键字详解
    糟糕的界面设计
    Firebird存储过程--更加人性化的设计
    lazarus的动态方法和虚拟方法
    用户行为导向的交互设计
    Javascript的一个怪现象
  • 原文地址:https://www.cnblogs.com/mengfff/p/5083750.html
Copyright © 2020-2023  润新知