当前位置: 代码迷 >> J2EE >> 联接SQLSERVER2005 ‘sa’登陆失败
  详细解决方案

联接SQLSERVER2005 ‘sa’登陆失败

热度:16   发布时间:2016-04-22 00:25:04.0
连接SQLSERVER2005 ‘sa’登陆失败
用JAVA连接数据库出现‘sa’登陆失败

网上说的方法都用了,

1.用sa登陆企业管理器没问题,模式已经是混合模式。sa状态是启动的。
2.TCP/IP协议都是启动的
3.sql2005连接包已经导入了的

现在把JAVA代码贴出来,帮我看看

Java code
import java.sql.*;public class ConnectionManager {        private static final String DIVER_CLASS="com.microsoft.sqlserver.jdbc.SQLServerDriver";        private static final String DATABASE_URL="jdbc:sqlserver://127.0.0.1:1433;databaseName=DBssh_Hua";        private static final String DATABASE_USER="sa";        private static final String DATABASE_PWD="sql2005";//    private static final String DIVER_CLASS="com.ibm.db2.jcc.DB2Driver";//    private static final String DATABASE_URL="jdbc:db2://192.168.0.75:50000/scexpert";//    private static final String DATABASE_USER="db2inst1";//    private static final String DATABASE_PWD="111111";        /**         *          * @return         */        public static Connection getConnection(){            Connection dbConnection = null;            try{                Class.forName(DIVER_CLASS);                dbConnection= DriverManager.getConnection(DATABASE_URL,DATABASE_USER,DATABASE_PWD);            }catch(Exception e){                e.printStackTrace();            }            return dbConnection;        }

 
------------------连接

Java code
 public static void main(String[] args) {  // TODO Auto-generated method stub  ConnectionManager con = new ConnectionManager();  con.getConnection(); }

-------------------异常

com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。
 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
 at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.processLogon(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
 at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
 at java.sql.DriverManager.getConnection(Unknown Source)
 at java.sql.DriverManager.getConnection(Unknown Source)
 at com.yangtianb.ConnectionManager.getConnection(ConnectionManager.java:20)
 at com.yangtianb.Test.main(Test.java:11) 


问题补充:端口:
SQLEXPRESS的协议:
---
IP :192.168.0.69
TCP动态端口:0
TCP端口:1433
活动:是
已启动:是
---
IP地址:127.0.0.1
TCP动态端口:0
TCP端口:1433
活动:是
已启动:是
---
TCP动态端口:58341
TCP端口:

这样是对的吗? 

--------------
我在SQL SERVER企业管理器中sa登陆都没的问题
连接DB2没问题
我不知道怎么弄了。

------解决方案--------------------
可以检查一下你所打开的服务与你所要登录的“sa”用户是否在同一个数据库名称中,sql2005有两种不同的服务分别连接对应 不同的两种数据库名称
------解决方案--------------------
Java code
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class ConDB {        private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";    private static String url="jdbc:sqlserver://localhost:1433;databaseName=DBssh";    private static String pwd="sql2005";    private static String user="sa";    public static Connection getConnection(){        Connection con=null;        try {            Class.forName(driver);            con=DriverManager.getConnection(url, user, pwd);            System.out.println("conn ok");        } catch (ClassNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return con;    }    public static Connection closeCon(Connection con){        if(con!=null){            try {                con.close();            } catch (SQLException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }        return con;    }    public static Statement closeStm(Statement stm){        if(stm!=null){            try {                stm.close();            } catch (SQLException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }        return stm;    }    public static ResultSet closeRs(ResultSet rs){        if(rs!=null){            try {                rs.close();            } catch (SQLException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }        return rs;    }    }
  相关解决方案