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