天天看點

sqlserver2000資料庫連接配接失敗常見問題及解決方案

try{

   String sql="insert into test1 values('"+name+"','"+call+"','"+Email+"','"+tel+"','"+addr+"','"+text+"')";

   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

   String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test1";

   String user = "sa";

   String password = "123456";

   java.sql.Connection conn = (java.sql.Connection) DriverManager.getConnection(url, user, password);

      System.out.println("資料庫連接配接成功!");

      Statement st=conn.createStatement();

      st.executeUpdate(sql);

      conn.close();

      st.close();

   }catch(ClassNotFoundException e)

   {System.out.println("資料庫連接配接失敗:"+e.getMessage());}

   catch (SQLException ex){

   System.out.println("SQLException: " + ex.getMessage());

   System.out.println("SQLState: " + ex.getSQLState());  

   }

         首先檢查資料庫名,使用者,密碼是否正确

錯誤1:

java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC]Error   establishing   socket

解決方案:

         裝sql2000更新檔sp4,打開工具—SQL Servers屬性(配置),點選正常頁籤,點選網絡配置,“ 啟動的協定”中使用“TCP/IP協定”(把命名管道禁止掉),然後打開“安全性”頁籤,選擇身份驗證為“SQL Server和 Windows ” ,把sql2000三個驅動包(msbase.jar,mssqlserver.jar,msutil.jar)導入工程,涮新,重新部署,重新開機tomcat

錯誤2:

使用者 'sa' 登入失敗。原因: 未與信任 SQL Server 連接配接相關聯。

解決方案:

  這一問題一般是由于SQL Server未內建Windows身份驗證導緻的,是以解決方案為:

1 打開SQL Server企業管理器。

2 選擇伺服器名稱(local)(WindowsNT)上右鍵選擇“編輯SQL Server注冊屬性”,然後在對話框中選擇“使用windows身份驗證”。

3 試試一試,不行。在看看安全性設定

4 同樣右鍵,選擇“屬性”,然後打開“安全性”頁籤。

5 在頁籤中,選擇身份驗證為“SQL Server和 Windows ”,其他不變

6.重新開機sql2000伺服器

SQL2000的sa密碼更改方法

1.試試登出你的作業系統,用administrator登陸 查詢分析器--連接配接使用"windows身份驗證"--如果這裡能成功,你就執行下面的語句來修改sa的密碼 sp_password null,'新密碼','sa'

 如    sp_password null,'123456','sa'

 如果你在測試連接配接SQL Server 2000 JDBC連接配接時出現錯誤Error establishing socket.請參考如下:

用 CMD 指令NETSTAT查1433(這是預設的端口,可能被占用,你可以重新設一個新的端口)的端口可是居然沒有沒有打開,先看看你的伺服器有沒有打開,如果都大開了那就說明你沒有裝SQL的sp3或sp4的更新檔.

還有一個方法看你是不是要打更新檔,那就是看看你的版本号:

可以用如下的方式檢視MSSQL的版本:

打開企業管理器-〉工具-〉SQL查詢分析器-〉幫助-〉關于

檢視MSSQL的詳細版本号

如果 是 8.00.194 就是還沒打更新檔

8.00.760 就是SP3

8.00.2039 就是SP4

如果你的版本号是對的,但NETSTAT查1433沒有,那可能你的1433端口被占了,換一個端口應該就可以了.

換端口的方法是:1. 打開企業管理器,依次在控制台根目錄 ->Microsoft SQL Servers->SQL Server 組,列出一部分資料庫伺服器。

2. 右擊我們要連接配接的資料庫伺服器,選擇屬性,在正常頁籤點選網絡配置彈出新視窗。

3. 在啟用的協定區域我們選擇 TCP/IP ,點選屬性按鈕,彈出新視窗。在這個視窗有網絡協定預設值設定,一般預設端口是:1433。

另有一篇網上的方法,供參考:

如運作程式時出現 "Error establishing socket" 錯誤,則應進行如下調試:

1 檢查SQL SERVER 是否允許遠端通路.具體步驟:

1)打開"企業管理器",打開控制台根目錄>SQL Server 組>資料庫

2)在相應"資料庫"上單擊右鍵,選擇"屬性"

3)選擇"連接配接"頁籤,檢查"遠端伺服器連接配接"下,RPC服務是否選擇.

2 使用telnet IP位址 1433,系統是否提示連接配接出錯,如系統提示出錯

檢查是否防火牆屏蔽了SQL SERVER 或 java IDE 的網絡通路端口

如果是,關閉防火牆,重新啟動SQL SERVER和java IDE,進行測試,

如果系統仍提示上述錯誤,嘗試下列步驟

3 檢查SQL SERVER 端口号及是否啟用了TCP/IP協定,具體步驟:

1)打開"企業管理器",打開控制台根目錄>SQL Server 組>資料庫

2)在相應"資料庫"上單擊右鍵,選擇"屬性"

3)選擇"正常"頁籤,點選"網絡配置",如啟用的協定中無"TCP/IP協定"将其加入

4)選擇"TCP/IP協定",點選"屬性",檢查其端口号是否為1433

5)如端口号為1433将其修改為其它端口号,修改jdbc連接配接語句,将端口号同樣改為新啟用的端口号,如jdbc:microsoft:sqlserver://server_name:1400(假設新端口号為 1400)

以下的方法你每種的去試試:

#檢查一下sql server的connection有沒有full.

#如果是認證的問題.

可到sql enterprice manager->指定server->内容->安全性.

把驗證改為 SQL server 及 windows.

#點選屬性檢查一下port是否正确.

#執行%MSSQL_HOME%/80/Tools/Binn/SVRNETCN.exe

把TCP/IP啟用.

#關掉防火牆.