MongoDB - 套接字权限被拒绝:127.0.0.1:27025

时间:2017-06-06 11:52:54

标签: linux mongodb sockets redhat systemd

重启Redhat 7后,我收到错误日志

listen(): bind() failed errno:13 Permission denied for socket: 127.0.0.1:27025
systemd[1]: mongod.service: main process exited, code=exited, status=100/n/a

mongod.service

[Unit]
  Description=High-performance, schema-free document-oriented database
  After=network.target

 [Service]
   User=mongod
   Group=mongod
   Environment="OPTIONS=--quiet -f /etc/mongod1.conf"
   ExecStart=/usr/bin/mongod $OPTIONS run
   ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
   ExecStartPre=/usr/bin/chown root:root /var/run/mongodb
   ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
   PermissionsStartOnly=true
   PIDFile=/var/run/mongodb/mongod1.pid


 [Install]
   WantedBy=multi-user.target

mongod1.conf

#systemLog:
  destination: file
  logAppend: true
  path: /home/telenstanley/mongod1.log

# Where and how to store data.
storage:
  dbPath: /var/lib/mongo/db1
  journal:
    enabled: true
#  engine:
  mmapv1:
    smallFiles: true
#  wiredTiger:

# how the process runs
processManagement:
  fork: false  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod1.pid  # location of pidfile

# network interfaces
net:
  port: 27025
  bindIp: 127.0.0.1  # Listen to local interface only, comment to listen on all interfaces.


#security:
 # authorization: enabled
#operationProfiling:

replication:
  oplogSizeMB: 1024
  replSetName: testrep
#sharding:

## Enterprise-Only Options

我无法找到有关我的问题的任何有用的答案。但mongod通过从cmd以root用户身份运行成功启动

  

sudo mongod -f mongod1.conf

2 个答案:

答案 0 :(得分:2)

几次后找到答案..

  

您必须配置SELinux以允许MongoDB在基于Red Hat Linux的系统(Red Hat Enterprise Linux或CentOS Linux)上启动。

如果处于强制模式,则通过访问SELinux的相关端口(例如27017)来解决权限问题。有关MongoDB默认端口的更多信息,请参阅默认MongoDB端口。对于默认设置,可以通过运行

来完成
semanage port -a -t mongod_port_t -p tcp 27025

答案 1 :(得分:1)

我的mongod.service有

  ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb

而不是

  ExecStartPre=/usr/bin/chown root:root /var/run/mongodb

所有者是mongod而不是root。