安装MongoDB
- 配置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
- 安装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
准备工作
- 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
- 路径配置 因为这里使用yum安装的方式安装的,默认下面的目录会自动创建,对应的用户和用户组也会自动创建:
- /var/lib/mongo (the data directory)
- /var/log/mongodb (the log directory)
- SELinux配置 如果里面没有使用yum安装MongoDB的默认文件夹或者MongoDB默认端口,则需要看这一节配置。这里我们使用默认路径和默认端口,则无需配置SELinux。
运行程序
- 运行MongoDB
sudo service mongod start
- 验证MongoDB
sudo tail /var/log/mongodb/mongod.log
...
NETWORK [initandlisten] waiting for connections on port 27017
...
这里我们看到MongoDB正在使用27017端口就说明没有问题了。接下来,设置MongoDB随机启动:
sudo chkconfig mongod on
- 停止MongoDB
sudo service mongod stop
- 重启MongoDB
sudo service mongod restart
- 使用MongoDB
mongo
- 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'
参考
- [Install MongoDB Community Edition on Red Hat Enterprise or CentOS Linux](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/#install-mongodb-community-edition-on-red-hat-enterprise-or-centos inux)
- linux获取 GPG 密钥失败
- CHAPTER 4. IMPORTING CUSTOM GPG KEYS
- How To Install MongoDB On CentOS 7
- Enable Auth
- How to connect to your remote MongoDB server
- Configuration File Options