前天開始安裝省總服務器,先建數據庫,又打包程序進行安裝,一切按部就班,很是順利,可最後程序總是連不上數據庫,用以下命令進行測試:
catalog tcpip node local remote localhost server 5000(db2-port-number)
catalog db sample as test at node local
connect to test user <用戶名> using
最後總是提示:
SQL30081N 檢測到通信錯誤。正在使用的通信協議:"TCP/IP"。正在使用的通信API:
"SOCKETS"。檢測到錯誤的位置:"127.0.0.1"。檢測到錯誤的通信函數:"recv"。協議
特定的錯誤代碼:"10054"、"*"、"0"。 SQLSTATE=08001
又是30081N錯誤!!!一遍遍的檢查端口、TCP/IP協議、網絡連接,一切都正常!沒有辦法,只好重新裝數據庫,用restore恢復備份的數據庫時,系統總是提示:在本地數據庫目錄或系統數據庫目錄中已經存在數據庫別名 "HD" ,到網上搜了一下按別的人提示進行以下操作:
用命令行:
首先db2 list db directory 來查看有沒有HD的entry
沒有看到有HD的信息
還是執行了一下db2 drop db HD
如果數據庫沒有刪除的話,則此命令應該成功,否則的話就應該用下面這個命令
uncatalog db HD來刪除HD的 entry,但是提示報‘SQL1013N 找不到數據庫別名或數據庫名 "HD "。 SQLSTATE=42705’錯誤,。郁悶,接著又按網上別人的說法進行以下操作:
db2 catalog db HD
db2 drop db HD
然後在執行restore database HD taken at 時間戳 命令,OK,成功!
不過,程序仍是連不上數據庫,後來終於想起來,估計是我恢復的數據庫密碼跟我新建的數據庫密碼不一致所造成的,那麼在DB2中針對db2admin用戶,它的密碼能修改嗎?有關資料上說:db2admin用戶創建了以後它的密碼最好不要修改,因為重新啟動系統之後就會連不上數據庫,系統報錯DB2管理服務器沒有啟動,這是因為注冊系統服務的時候是按照DB2安裝時候的用戶名和密碼進行注冊的,所以你修改密碼後系統服務就沒有辦法啟動,所以才會造成這種情況。具體對策只要把服務中的啟動服務的用戶密碼改成修改過的密碼在啟動DB2服務即可。