不好意思,我打错了,是产生如下的错误:
Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer 2000 Dri
ver for JDBC][SQLServer]用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关
联。
        at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
)
        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown
 Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown
 Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Un
known Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Sour
ce)
        at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou
rce)
        at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
ource)
        at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
        at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
        at java.sql.DriverManager.getConnection(DriverManager.java:512)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at connection.main(connection.java:9)

解决方案 »

  1.   

    我在登录SQL查询分析器的时候
    要是使用SQL Server身份验证,输入sa,密码为空,也显示用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联;
    要是使用Windows身份验证,就可以进去。
      

  2.   

    试试这个方法:
    确定你的MSSQLServer的驱动包在java_home/jre/lib/ext中(放在这儿方便点,不用设置pathclass),如果你用的是jcreator工具,请到option里重新设置一下j2SDK,测试程式如下:
    import java.sql.*;
    public class test
    {
    public static void main(String args[])
    {
    try
    {
    url="jdbc:microsoft://localhost:3306/mydata";//mydata是你自己的数据库
    driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//就是你的驱动包中Driver路径
    Connection con;
    Class.forName(driver);
    con=DriverManager.getConnection(url,"sa","");//第二个参数是数据库用户名,第三个是密码
    System.out.println("OK");
    }
    catch(Exception e)
    {
    System.out.println(e);
    }
    }
    }
    //这样就可以了。^_^
      

  3.   

    谢谢你
    我感觉好象不是错在哪里,应该是SQL Server的问题吧,但是具体我也弄不明白
    希望大家指教
      

  4.   

    确保你的数据库的安全性中的身份验证为SQL Server和Windows混合方式
      

  5.   

    在安装SQL Server的时候为数据库配置用户的时候除了问题,
    具体解决办法是重新安装SQL Server,
    在出现为数据库配置用户的时候为sa用户设置一个密码,
    然后用这个sa和密码登陆你的SQL Server里的查询分析器,
    这样应该可以登陆查询分析器而且java连接数据库时应该不会在出现错误了!!!!
      

  6.   

    确保你的数据库的安全性中的身份验证为SQL Server和Windows混合方式,还有就是SQL server的驱动程序是否放在相应的路径下。
      

  7.   

    连接数据库务必try   catch
      

  8.   

    你安装的时候是不是就是用的windows的身份,最好用混合模式
      

  9.   

    我是刚刚开始学JAVA,我想问一下在JAVA中怎么与数据库连接起来啊?
    能不能给我举个示例?
      

  10.   

    谢谢,小弟重新装一下SQL Server
      

  11.   

    请问怎么才能让我的数据库的安全性中的身份验证为SQL Server和Windows混合方式(除了重新安装之外),谢谢。
      

  12.   

    回复人: xiaohuasz() ( ) 信誉:100  2005-04-20 19:48:00  得分: 0   
       确保你的数据库的安全性中的身份验证为SQL Server和Windows混合方式
    ----------------------------------------------
    正解,你的登陆方式没设置好~~
      
     
      

  13.   

    回复人: liublog(╃) ( ) 信誉:101  2005-04-20 23:21:00  得分: 0  
       请问怎么才能让我的数据库的安全性中的身份验证为SQL Server和Windows混合方式(除了重新安装之外),谢谢。
    -------------------------------------------------------------------------
    方法如下:
       打开"SQL企业管理器",然后定位到你要登陆的数据库服务器上(如:"(local)(Windows NT)"),然后右键单击该服务器的名字,在弹出菜单中选择"属性",然后在弹出对话框中选择"安全性"选项卡,在"安全性"选项卡中你就可以看到"身份验证"选项,选"SQL Server和Windows",然后确定就可以了,然后可以用SA登陆了~~
       就看你在安装的时候有没有设置SA的密码了~~
      
     
      

  14.   

    用 windows 身份进入“企业管理器”后,在“安全”里修改 sa 的密码,或添加其他高权限的帐号
      

  15.   

    谢谢,这回好使了,不用重新安装SQL Server
    但是当我运行的时候出现如下的错误:
    -----------------------------------------
    Exception in thread "main" java.sql.SQLException: [Microsoft][SQLServer 2000 Dri
    ver for JDBC]Error establishing socket.
    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
    at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
    at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:512)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at connection.main(connection.java:9)我已经把
    C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;
    C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;
    C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar
    这些放到CLASSPATH中去了,我感觉不是不能加载SQL Server驱动。错误说是Error establishing socket,
    我以前连数据库都是这么写的语句,没有错误啊,
    请大家帮忙给小弟指点一下,谢谢。
    -----------------------------------------
    连接数据库的原程序如下:import  java.sql.*;  public  class  connection{  
     public  static  void  main(String[]  args)  throws  Exception  {  
     String id=null,name=null;
       String  sql="select  *  from  menu";  
       Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");  
       Connection conn=DriverManager.getConnection     
                    ("jdbc:microsoft:sqlserver://STEVIE:1433;DatabaseName=myData","sa","");  
       Statement  stmt=conn.createStatement();  
       ResultSet  rs=stmt.executeQuery(sql);  
       while(rs.next())  {  
         id=rs.getString(1);  
         name=rs.getString(2);  
         System.out.println("id"+id);  
         System.out.println("name"+name);  
       }         
       rs.close();  
       stmt.close();  
     }  
    }
      

  16.   

    其中第9行是:Connection conn=DriverManager.getConnection  ("jdbc:microsoft:sqlserver://STEVIE:1433;DatabaseName=myData","sa","");  
      

  17.   

    你的代码我测试了,没有问题啊!!!import  java.sql.*;public class ConnectionSqlServer {
      
      public static void main(String[] args) throws Exception {  
        String id=null;
        String name=null;
          String  sql="select * from ctl_tbl";
          Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
          Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=NGSoft","sa","");
          Statement  stmt = conn.createStatement();
          ResultSet  rs = stmt.executeQuery(sql);
          while(rs.next())  {
            id=rs.getString(1);
            name=rs.getString(2);
            System.out.println("id"+id);
            System.out.println("name"+name);
          }
          rs.close();
          stmt.close();
        }
      
    }
    SQL Server SP3 你装了没有?如果是windows server 2003 的操作系统,不装sp3就会出现
    Error establishing socket的错误。
    下面是我的运行结果:
    idngfuncs
    name功能模块定义、安装记录
    idngusers
    name用户帐套记录
    idngrights
    nameNGSoft管理员
    idngyeardb
    name帐套的各个年度
    idngreper
    name复制记录
    idngspc
    name管理记录
    idngsource
    name其它数据源
    idngbackup
    name备份记录
    idngreper1
    name复制任务表
    idrepdbver
    name复制版本表
    idngsuites
    name套件表
    idngver
    name
    idnglanguage
    name语言表
    idngtran_def
    name协同信息表
    idngtran_logs
    name协同日志表
    idngtran_wspace
    name协同账套表
    idngtran_obj
    name协同对象表
    idngsystemrelaconn
    name
    idngsystemrelation
    name
    idngsystemrelabusi
    name
    我是新手。。说得不对的地方大家不要骂我,呵呵
      

  18.   

    我感觉也不应该有错误啊,
    但是就是显示:“Error establishing socket的错误”
    不知道是什么错误,怎么回事。
      

  19.   

    我以前遇到过这个问题
    有两种解决办法:
    (1)你没有启动SQL Server
    (2)只能重新安装SQL Server
      

  20.   

    谢谢大家
    谢谢 jdbc(.Config) 
    我的错误让你的(1)说中了
    呵呵!