配置服務器--連接失敗 — Java連接SQL Server 2005

配置sqlsever
2009-10-05 14:21

摘自百度知道:剛剛安裝的數據庫系統,按照默認安裝的話,很可能在進行遠程連接時報錯,通常是錯誤:"在連接到 SQL Server 2005 時,在默認的設置下 SQL Server 不允許進行遠程連接可能會導致此失敗。 (provider: 命名管道提供程序, error: 40 - 無法打開到 SQL Server 的連接) "搜MSDN,上面有一片機器翻譯的文章,是在讓人難以明白,現在總結如下:明白了SQL Server是個網絡數據庫就可迎刃而解了,簡單的分爲下面的集中情況。
1. 數據庫引擎沒有啓動。

有兩種啓動方式:

(1)開始->程序->Microsoft SQL Server 2005->SQL Server 2005外圍應用配置器,在打開的界面單擊"服務的連接的外圍應用配置器",在打開的界面中找到Database Engine,單擊"服務",在右側查看是否已啓動,如果沒有啓動可單擊"啓動",並確保"啓動類型"爲自動,不要爲手動,否則下次開機時又要手動啓動;

(2)可打開:開始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,選中SQL Server 2005服務中SQL Server(MSSQLSERVER) ,並單擊工具欄中的"啓動服務"按鈕把服務狀態改爲啓動;

使用上面兩種方式時,有時候在啓動的時候可能會出現錯誤,不能啓動,這時就要查看"SQL Server 2005配置管理器"中的SQL Server 2005網絡配置->MSSQLSERVER協議中的VIA是否已啓用,如果已啓用,則把它禁止.然後再執行上述一種方式操作就可以了.

2. 是否已經允許遠程連接。

這個部分可以簡單的分爲4個方面,分別是在 SQL Server上啓用遠程連接、啓用SQL Server 瀏覽服務、在Windows 防火牆中爲SQL Server 2005 創建例外和在Windows 防火牆中爲“SQLBrowser”創建例外。下面是幾個具體的操作方式,摘自MSDN,個人覺得文章的黑體部分應當特別的一起我們的注意。


在SQLServer 實例上啓用遠程連接
1.指向“開始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外圍應用配置器”
2.在“SQL Server 2005 外圍應用配置器”頁, 單擊“服務和連接的外圍應用配置器”
3.然後單擊展開“數據庫引擎”, 選中“遠程連接”,在右邊選中“本地連接和遠程連接”,
再選擇要使用的協議,( 這個地方應當啓用TCP/IP 和命名管道服務!)單擊“應用”,您會看到下消息:
“直到重新啓動數據庫引擎服務後,對連接設置所做的更改纔會生效。”,單擊“確定”按鈕返回
4.展開“數據庫引擎”, 選中“服務”,在右邊單擊“停止”,等到 MSSQLSERVER 服務停止,
然後單擊“啓動”,重新啓動MSSQLSERVER 服務。

啓用 SQLServer 瀏覽器服務
1.指向“開始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外圍應用配置器”
2.在“SQL Server 2005 外圍應用配置器”頁, 單擊“服務和連接的外圍應用配置器”
3.然後單擊展開“SQL Server Browser”, 選中“服務”,在右邊“啓動類型”選擇“自動”,
再單擊“啓動”,單擊“確定”按鈕返回

在Windows 防火牆中爲“SQL Server 2005”創建例外
1.在 Windows 防火牆設置界面中,選擇“ 例外” 選項卡,然後單擊“添加程序”
2.在“添加程序窗口”中單擊“瀏覽”
3.然後找到“C:/ProgramFiles/Microsoft Files/Microsoft SQL Server/ MSSQL.1 /MSSQL/Binn/sqlservr.exe”,
單擊“確定”返回
注意 : 路徑可能會根據 SQL Server 2005 安裝不同而不同。 MSSQL.1 是佔位符,對應數據庫實例ID。
4.對每個需要打開遠程訪問的SQL Server 2005 實例,重複步驟 1 至 3。

在Windows 防火牆中爲“SQLBrowser”創建例外
1.在 Windows 防火牆設置界面中,選擇“ 例外” 選項卡,然後單擊“添加程序”
2.在“添加程序窗口”中單擊“瀏覽”
3.然後找到“C:/ProgramFiles/Microsoft Files/Microsoft SQL Server/90/Shared/sqlbrowser.exe”,
單擊“確定”返回
注意 : 路徑可能會根據 SQL Server 2005 安裝不同而不同。


在使用.NET開發進行時,會遇到使用連接字符串連接SQL Server 2005數據庫使用機器名稱和localhost都能連接,但是使用IP地址卻不能連接的問題,解決的辦法是在SQL Server實例上啓用本地和遠程連接,並且在選擇協議的時候使用TCP/IP和命名管道服務即可解決。

 

 

 

使用期間遇到好多問題,到網上搜了一下,下面是整理的,包括了幾乎所有的問題(起碼我遇到的),希望能幫助需要的朋友!!
1.準備工作: 準備相關的軟件(Eclipse除外,開源軟件可以從官網下載)
<1>.Microsoft SQL server 2005 Express Edition
下載地址:http://download.microsoft.com/download/0/9/0/09020fab-d2c3-4a8c-b9e0-db53a7a30ae8/SQLEXPR_CHS.EXE
<2>.SQL Server Management Studio
下載地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn& amp;FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796#filelist
<3>.SQL Server 2005 driver for JDBC
下載地址:http://download.microsoft.com/download/8/B/D/8BDABAE2-B6EA-41D4-B903-7916EF3690EF/sqljdbc_1.2.2323.101_enu.exe
2.都下載完之後開始進行安裝 ,前兩個是屬於數據庫軟件,正常安裝即可(注意數據庫登陸不要使用windows驗證)
<1> 將JDBC解壓縮到任意位置,比如解壓到C盤program files下面,並在安裝目錄裏找到sqljdbc.jar文件,得到其路徑開始配置環境變量
在環境變量classpath 後面追加 C:/Program Files/Microsoft SQL Server2005 JDBC
Driver/sqljdbc_1.2/enu/sqljdbc.jar
<2> 設置SQLEXPRESS服務器:
    a.打開SQL Server Configuration Manager -> SQLEXPRESS的協議 -> TCP/IP

    b.右鍵單擊啓動TCP/IP

    c.雙擊進入屬性,把IP地址中的IP all中的TCP端口設置爲1433

    d.重新啓動SQL Server 2005服務中的SQLEXPRESS服務器

    e.關閉SQL Server Configuration Manager
<3> 打開剛剛安裝好的 SQL Server Management Studio,連接SQLEXPRESS服務器, 新建數據庫,起名字爲sample
<4> 打開Eclipse
    a.新建工程-> java -> java project,起名爲Test

    b.選擇eclipse->窗口->首選項->java->installed JRE 編輯已經安裝好的jdk,查找目錄添加sqljdbc.jar

    c.右鍵單擊目錄窗口中的Test, 選擇Build Path ->Configure Build Path...,
添加擴展jar文件,即把sqljdbc.jar添加到其中

<5> 編寫java代碼來測試連接數據庫
程序代碼:

import java.sql.*;
public class Test {
public static void main(String[] srg) {
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//加載JDBC驅動
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample";
//連接服務器和數據庫sample
String userName = "sa"; //默認用戶名
String userPwd = "123456"; //密碼
Connection dbConn;
try {
   Class.forName(driverName);
   dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
   System.out.println("Connection Successful!"); //如果連接成功 控制檯輸出Connection
Successful!
} catch (Exception e) {
   e.printStackTrace();
}
}
}

注:
1.因爲SQLexpress服務器默認是禁用的並且端口號沒有配置,所以要進行重新設置
2.如果你以前用java連接sql server 2000的話就要注意了:
在sql server 2000 中加載驅動和URL路徑的語句是
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sample";
而sql server 2005 中加載驅動和url的語句則爲
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample";
如果寫法錯誤將會找不到驅動.
-------------------------------------------------------------


Java連接SQL Server 2005

一、JAVA連接SQL的語句
JAVA連接SQL2000語句爲:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
DriverManager.getConnection("jdbc:odbc:數據庫名","數據庫登錄名","登錄密碼");
但連接SQL2005,已經改爲:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;
DatabaseName=數據庫名","數據庫登錄名","登錄密碼");
二、JAVA連接SQL都要用到驅動程序
SQL2000需要三個jar包:mssqlservice.jar,msutil.jar,msbase.jar
SQL2005需要一個jar包:sqljdbc.jar
所以SQL2000和2005的連接方法是不一樣的,
到微軟下載"Microsoft SQL Server 2005 JDBC Driver"最新版本,現在的應該是1.2
下面Microsoft SQL Server 2005 JDBC Driver的安裝說明:
1. 將 sqljdbc__enu.exe 下載
2. 運行 sqljdbc__enu.exe
3. 出現提示時,輸入安裝目錄;建議您將此 zip 文件解壓縮到 %ProgramFiles% 中的默認目錄下:
Microsoft SQL Server 2005 JDBC Driver
4.在環境變量CLASHPATH後加上C:/Program Files/Microsoft SQL Server 2005 JDBC
Driver/sqljdbc_1.2/enu/sqljdbc.jar(這是1.2版的,其它版本按實際修改......)
但上面只解決了驅動程序的問題.....
三、另外有時候會出現"SQL SERVER 2005使用sa 登錄失敗-提示該用戶與可信 SQL Server 連接無關聯"或除sa外的用戶登錄失敗的問題.
解決方法如下:
1.打開SQL Server Management Studio
2.右鍵點擊服務器,選擇Properties(屬性),點擊Security(安全性),
將server authentication服務器身份認證從windows authentication mode(windows身份認證模式)
修改爲Sql Server and Windows Authentication mode(SQL server和windows身份認證模式).
3.回到SQL Server Management Studio服務器那,在服務器下雙擊打開security(安全性) -- logins(登錄名)
,右鍵選中sa,選擇properties(屬性),點擊Status(狀態),在設置中將Login(登錄)設置爲Enabled(啓用)。(忘記sa密碼的可在常規修改密碼)

四、設置SQL Server服務器
1、打開SQL Server Configuration Manager”,雙擊“SQL Server 2005網絡配置”,點擊“MSSQLSERVER
的協議”
2、如果“TCP/IP”沒有啓用,右鍵單擊選擇“啓動”。
3、雙擊“TCP/IP”進入屬性設置,在“IP 地址”裏,可以配置“IPAll”中的“TCP 端口”,默認爲1433,將IP地址中的“已啓用”設爲“是”。
4、重新啓動SQL Server
5、運行正常。

 

轉自:http://apps.hi.baidu.com/share/detail/24634465

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章