CentOS 安装 MongoDb, 防火墙开放端口, 以及修改默认端口

0.确定服务器是Centos

cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

  1. rpm
rpm -ivh mongodb-org-server-7.0.14-1.el7.x86_64.rpm

2.修改 /etc/mongod.conf 这个配置文件
改为了0.0.0.0适配所有ip

# mongod.conf
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
  dbPath: /var/lib/mongo
# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

3.启动服务

systemctl start mongod.service

4.检查服务状态

 systemctl status mongod

5.也可以关闭服务

 systemctl stop mongod.service

6.防火墙状态

systemctl status firewalld.service


● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 五 2024-10-25 10:23:17 CST; 1 day 8h ago
 Main PID: 909 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─909 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

7.查询防火墙放开的端口列表

firewall-cmd --permanent --list-ports

也可以单独查看某个端口是否放开

 firewall-cmd --query-port=27017/tcp

8.增加端口

firewall-cmd --permanent --add-port=27017/tcp

9.关闭防火墙,重启防火墙

systemctl stop firewalld.service
systemctl start firewalld.service

P.S 似乎可以通过reload来实现,我没有尝试

firewall-cmd --reload

最后说一下修改默认端口会遇到的问题
由于mongodb安装时 会设置 mongod_port_t 默认值为27017
它是 SELinux 中的一种端口类型标签,专门用于标识 MongoDB(mongod)服务允许使用的端口。这种类型标签告诉 SELinux 哪些端口是 MongoDB 服务可以访问的,从而实现强制访问控制。通过这种方式,SELinux 可以限制和管理 MongoDB 访问的端口,确保其他服务不能使用这些端口,也防止 MongoDB 在未经授权的端口上运行。

所以如果直接在conf中修改端口,重新启动将出现错误:
SocketException setup bind Permission denied
标准做法是修改mongod_port_t

但是简单粗暴的方法是,设置SELinux 为宽容模式:不会阻止操作,只会记录):
sudo setenforce 0

设置后,再次启动mongodb就不会报错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值