Windows上很少安裝數據庫,這次遇到一個小問題:數據庫啟動之后提示:
警告: 無法為 "*" 創建監聽套接字 致命錯誤: 無法創建TCP/IP套接字 日志: 數據庫系統已關閉
1.首先,打開服務器的netstat功能(位於控制面板->程序->打開windows功能里面),執行命令查看端口占用情況:
PS C:\Users\Administrator> NETSTAT.EXE -ano|findstr "54321" TCP 0.0.0.0:54321 0.0.0.0:0 LISTENING 7800 TCP [::]:54321 [::]:0 LISTENING 7800
2.然后在任務管理器中找一下這個進程,是看不到的7800對應PID的進程。
3.嘗試用taskkill來殺這個進程,也提示找不到PID對應的進程:
PS C:\Users\Administrator> taskkill.exe /PID 7800 錯誤: 沒有找到進程 "7800"。
4.通過Get-Process kingbase 來搜索進程,發現遺留的進程PID應該為7144,而不是7800:
PS C:\Users\Administrator> Get-Process kingbase Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 483 1 640 60 13 0.00 7144 kingbase
5.重新kill生效:
PS C:\Users\Administrator> taskkill.exe /PID 7144 錯誤: 無法終止 PID 為 7144 的進程。 原因: 只能強行終止這個進程(帶 /F 選項)。 PS C:\Users\Administrator> taskkill.exe /PID 7144 /F 成功: 已終止 PID 為 7144 的進程。 PS C:\Users\Administrator> NETSTAT.EXE -ano|findstr "54321"
6.啟動數據庫OK:
PS C:\Users\Administrator> NETSTAT.EXE -ano|findstr "54321" TCP 0.0.0.0:54321 0.0.0.0:0 LISTENING 32 TCP [::]:54321 [::]:0 LISTENING 32 PS C:\Users\Administrator> Get-Process kingbase Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 375 13 5612 56044 1175 0.11 32 kingbase 331 10 4812 13028 1169 0.03 2344 kingbase 333 10 5656 9456 1170 0.02 3336 kingbase 332 10 2672 7096 1173 0.02 3876 kingbase 330 10 4808 7752 1169 0.02 4392 kingbase 330 10 2752 7432 1169 0.05 6972 kingbase 333 10 6152 9572 1171 0.02 7240 kingbase 331 10 4808 7812 1169 0.03 8176 kingbase