由於本人的笨拙,搞了一天才終於搞好,說實在的問題歸根結底還是在sql上,要相信openfire是沒問題的。好了,不瞎扯了,說正題。
本人的機器環境為:win7、sqlserver 2008、jdk1.6(即SE 6.0),用的openfire是我寫此文章時最新的3.9.1版本,我下載的sqljdbc驅動是目前最新的sqlserver jdbc 4.0版本。
sqljdbc4.0驅動微軟下載地址(微軟的下載網站打開真是慢的一筆):http://www.microsoft.com/zh-CN/download/details.aspx?id=11774
下載后按網上的教程搭建openfire服務器,用自帶的嵌入式數據庫一路配置是木有問題的。新手可參照: http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html
配置成功后可用 spark 測試一下,今天正好找到一個簡單講解 spark使用的文章,里面還講解了怎么安裝插件: http://www.cnblogs.com/hannover/archive/2008/12/01/1345251.html
一切順利,可本人要用sqlserver 數據庫的啊,其他的暫時不懂啊。於是重置openfire服務器,准備改為sqlserver 數據庫配置方式。那順便說一下如何重置openfire呢,很簡單,先停止openfire 服務,然后找到路徑 *\openfire\conf\openfire.xml 文件中的 <setup>true</setup>標簽 刪掉就行了,重新運行openfire.exe 是不是重新設置了呢?
按照步驟走到——數據庫設置——選擇“標准數據庫連接”,繼續,進入數據庫設置頁。
如上圖的提示,當你失敗時偶爾會出現openfire自帶的提示方式,有人說不需要自己下載sqljdbc因為openfire自帶了與sqlserver數據庫的連接驅動,但我按它的方式沒有成功;咨詢之下又有人說要自己下載sqljdbc,於是我就自己下載了,我下載的是那個壓縮包,解壓后找到 sqljdbc4.jar復制一份,為了保險起見,在openfire 安裝目錄的lib目錄下粘貼一份,同時在 jdk安裝目錄的 *\lib\ext 目錄下也粘貼一份。。。回到我們上圖的數據庫連接設置頁面,做如下修改:
jdbc驅動程序類:com.microsoft.sqlserver.jdbc.SQLServerDriver
數據庫url:jdbc:sqlserver://localhost;DataBaseName=openfire
以上兩種填寫方式都是sqljdbc 2.0以后的標准填寫方式,此處localhost只是sqlserver的服務器名,我建議基礎不好的可以像我一樣先用localhost測試,成功后再嘗試ip或其他遠程方式,注意localhost后邊帶的是;而不是,。(網上很多帶 端口號1433的講解,但本人菜,調不出又看不懂。。。。)
以上步驟都正確的話,此時error.txt如果還報錯那應該是數據庫連接錯誤的提示,而非用openfire自帶驅動連接方式報的錯了。我先用 (local) 的 “sql server 身份驗證”方式直接登錄數據庫,發現也是登錄不上的,我記得以前是可以的,所以肯定是sqlserver 本身哪里配置錯了。
在開始菜單中找到 “sqlserver 配置管理器”(sql2005中記得不叫這個名字,忘了,不知道的自己查查),打開“sqlserver 配置管理器”:
選擇 mssqlserver的協議,將tcp/ip 設置為啟用。建議sqlserver 2008不要修改sqlexpress的協議,我這邊修改掉“sqlexpress的協議”的tcp/ip后會出現一些其它錯誤。
修改成啟動后,雙擊tcp/ip選項,打開 “tcp/ip 屬性” 選項卡 ,選擇ip地址 選項頁,找到 ip地址為(127.0.0.1)的屬性,將其“已啟用”改為“是”,(同理,如果想要配置其他ip也可以這么修改。)
點擊左側 “sqlserver 服務”,依次右鍵——>重新啟動 右側標出的這三個服務,現在去sql 登錄應該可以成功啦~~~
sql成功后說明 (local) 賬號用 “sql server 身份驗證” 方式登錄沒問題了,回到openfire 數據庫配置界面,填入剛才上面提到的值,繼續,是不是ok了呢?
本人的已正常運行~~~~
測試通過能連接,然后才可以進行其它的連接方式,比如ip連接,遠程網路連接等~~~~
祝大家好運~~~~