MongoDB4.0在CentOS7上面的安装

本文详细介绍了在Red Hat Enterprise或CentOS Linux上安装MongoDB社区版的过程,包括解决GPG密钥导入失败的问题,配置ulimit参数以适应MongoDB的需求,以及如何设置开机启动、防火墙端口和管理员用户,最后提供了取消IP限制和启用验证的方法。

安装MongoDB

  1. 配置yum
sudo vim /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
  1. 安装MongoDB软件包
sudo yum install -y mongodb-org

出现了如下问题:

获取 GPG 密钥失败:[Errno 14] curl#35 - "Cannot communicate securely with peer: no common encryption algorithm(s)."

这个问题原因是curl下载https://www.mongodb.org/static/pgp/server-4.0.asc文件失败,导致密钥导入失败。解决办法就是手动导入GPG密钥,后重新安装:

wget https://www.mongodb.org/static/pgp/server-4.0.asc
sudo rpm --import server-4.0.asc
sudo yum install -y mongodb-org

重新安装MongoDB无问题。

运行MongoDB

准备工作

  1. ulimit配置 ulimit查看限制:
$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 126964
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

推荐配置:

  • -f (file size): unlimited
  • -t (cpu time): unlimited
  • -v (virtual memory): unlimited [1]
  • -l (locked-in-memory size): unlimited
  • -n (open files): 64000
  • -m (memory size): unlimited [1] [2]
  • -u (processes/threads): 64000
  1. 路径配置 因为这里使用yum安装的方式安装的,默认下面的目录会自动创建,对应的用户和用户组也会自动创建:
  • /var/lib/mongo (the data directory)
  • /var/log/mongodb (the log directory)
  1. SELinux配置 如果里面没有使用yum安装MongoDB的默认文件夹或者MongoDB默认端口,则需要看这一节配置。这里我们使用默认路径和默认端口,则无需配置SELinux。

运行程序

  1. 运行MongoDB
sudo service mongod start
  1. 验证MongoDB
sudo tail /var/log/mongodb/mongod.log
...
NETWORK  [initandlisten] waiting for connections on port 27017
...

这里我们看到MongoDB正在使用27017端口就说明没有问题了。接下来,设置MongoDB随机启动:

sudo chkconfig mongod on
  1. 停止MongoDB
sudo service mongod stop
  1. 重启MongoDB
sudo service mongod restart
  1. 使用MongoDB
mongo
  1. MongoDB设置开机启动
sudo systemctl enable mongod.service

防火墙设置端口

sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload

创建管理员

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

去掉IP限制和启用验证

sudo vim /etc/mongod.conf

注释一行:

# bindIp: 127.0.0.1

添加配置:

security:
  authorization: 'enabled'

参考

转载于:https://my.oschina.net/fxtxz2/blog/3016082

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值