当前位置: 首页 > news >正文

netstat -tuln | grep 27017(显示所有监听状态的 TCP 和 UDP 端口,并且以数字形式显示地址和端口号)

文章目录

      • 1. 确定占用端口的进程
        • 使用 `lsof` 命令
        • 使用 `fuser` 命令
      • 2. 结束占用端口的进程
      • 3. 修改 MongoDB 配置文件
      • 4. 检查 MongoDB 日志文件
      • 5. 重新启动 MongoDB 服务
      • 6. 检查 MongoDB 服务状态
      • 总结

[root@localhost etc]# netstat -tuln | grep 27017
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN 

netstat 命令中的 -tuln 参数是由几个选项组合而成的,每个字母代表一个特定的选项。下面是这些选项的全称和含义:

  • -t (or –tcp): 显示 TCP(Transmission Control Protocol) 协议的连接。
  • -u (or –udp): 显示 UDP(User Datagram Protocol 用户数据报协议) 协议的连接。
  • -l (or –listening): 只显示监听状态的端口。
  • -n (or –numeric): 显示数字形式的地址和端口号,而不是解析为名称。

所以,netstat -tuln 的完整含义是:

  • 显示所有监听状态的 TCP 和 UDP 端口,并且以数字形式显示地址和端口号。

从你提供的 netstat 输出来看,端口 27017 已经被占用。这可能是导致 MongoDB 服务启动失败的原因之一。以下是一些可能的解决方案:

1. 确定占用端口的进程

首先,确定哪个进程占用了 27017 端口。你可以使用 lsoffuser 命令来查找:

使用 lsof 命令
sudo lsof -i :27017

lsof 是一个常用的 Unix 和类 Unix 系统(如 Linux)命令,用于列出当前系统上打开的文件和网络连接。lsof 的全称是 List Open Files,即“列出打开的文件”。

[root@localhost etc]# sudo lsof -i :27017
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
mongod  60040 root   10u  IPv4 10073717      0t0  TCP localhost:27017 (LISTEN)
使用 fuser 命令
sudo fuser 27017/tcp

这两个命令会显示占用 27017 端口的进程的 PID。

2. 结束占用端口的进程

找到占用端口的进程后,可以结束该进程。假设 PID 是 12345,可以使用以下命令:

[root@localhost etc]# sudo kill -9 60040

3. 修改 MongoDB 配置文件

如果占用端口的进程是你需要保留的,可以修改 MongoDB 的配置文件,让 MongoDB 使用其他端口。

编辑 /etc/mongod.conf 文件,找到 net 部分,修改 port 配置:

net:port: 27018  # 修改为你希望使用的端口号

保存文件后,重启 MongoDB 服务:

sudo systemctl restart mongod.service

4. 检查 MongoDB 日志文件

即使解决了端口占用问题,也建议查看 MongoDB 的日志文件,确保没有其他问题:

cat /var/log/mongodb/mongod.log

5. 重新启动 MongoDB 服务

在解决端口占用问题后,重新启动 MongoDB 服务:

sudo systemctl start mongod.service

6. 检查 MongoDB 服务状态

再次检查 MongoDB 服务的状态,确保服务已经成功启动:

sudo systemctl status mongod.service

总结

通过以上步骤,你应该能够解决由于端口占用导致的 MongoDB 服务启动失败问题。

在这里插入图片描述

http://www.lryc.cn/news/490524.html

相关文章:

  • 非线性控制器设计原理
  • MySQL数据库6——SQL优化
  • IDEA配置本地maven
  • 学习日记_20241123_聚类方法(高斯混合模型)续
  • SpringMVC——简介及入门
  • 文件操作完成后,为什么要关闭文件
  • vue3+echarts+ant design vue实现进度环形图
  • 使用argo workflow 实现springboot 项目的CI、CD
  • C++知识点总结(58):序列型动态规划
  • go interface(接口)使用
  • 【docker】docker commit 命令 将当前容器的状态保存为一个新的镜像
  • 使用 Java 中的 `String.format` 方法格式化字符串
  • 图论最短路(floyed+ford)
  • BERT的中文问答系统39
  • 从 Mac 远程控制 Windows:一站式配置与实践指南20241123
  • 【Linux学习】【Ubuntu入门】1-5 ubuntu软件安装
  • 如何自动下载和更新冰狐智能辅助?
  • 动态渲染页面爬取
  • C++适配器模式之可插入适配器的实现模式和方法
  • 每日一练:【动态规划算法】斐波那契数列模型之第 N 个泰波那契数(easy)
  • Hash table类算法【leetcode】
  • windows实现VNC连接ubuntu22.04服务器
  • 中国电信星辰大模型:软件工厂与文生视频技术的深度解析
  • 项目实战:基于Vue3实现一个小相册
  • macOS安装nvm node
  • 解决整合Django与Jinja2兼容性的问题
  • Elasticsearch面试内容整理-高级特性
  • linux通过手工删除文件卸载oracle 11g rac的具体步骤
  • 【ArcGISPro】根据yaml构建原始Pro的conda环境
  • 刷题笔记15