博文首发地址:https://blog.virde.xyz

Centos6.8 安装mongo3.6以及权限配置和开启外网链接

安装环境和版本说明,以及参考文档链接

安装MongoDB数据库

  • 配置MongoDB的源文件
[root@virde ~]# sudo vim /etc/yum.repos.d/mongodb-enterprise.repo

然后键入以下内容

[mongodb-enterprise]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.6/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
  • 下载安装包,使用yum install进行安装
[root@virde ~]# sudo yum install -y mongodb-enterprise

运行MongoDB数据库

  • 配置SELinux

如果你使用了SELinux,那么必须配置SELinux,不然会影响MongoDB的启动。
If you are using SELinux, you must configure SELinux to allow MongoDB to start on Red Hat Linux-based systems (Red Hat Enterprise Linux or CentOS Linux).

使用/usr/sbin/sestatus -v 命令查看SELinux的状态

[root@virde ~]# /usr/sbin/sestatus -v 
SELinux status:                 disabled

如果是disabled的话就可以略过这一步了
如果是开启状态,那么关闭SELinux即可

[root@virde ~]# vim /etc/selinux/config

然后找到SELINUX改为disabled

SELINUX=disabled
```

* 运行MongoDB
好了,现在可以先把mongo运行起来了。
```bash
[root@virde ~]# sudo service mongod start
Starting mongod:                                           [  OK  ]
```
查看 /var/log/mongodb/mongod.log,如果有
[initandlisten] waiting for connections on port 27017
说明MongoDB已经成功运行起来了。
```
[root@virde ~]# tail -f /var/log/mongodb/mongod.log
```

* 停止MongoDB
```bash
[root@virde ~]# sudo service mongod stop
Stopping mongod:                                           [  OK  ]
```

* 重启MongoDB
```bash
[root@virde ~]# sudo service mongod restart
Stopping mongod:                                           [  OK  ]
Starting mongod:                                           [  OK  ]
```

* 进入MongoDB shell
```bash
[root@virde ~]# mongo
MongoDB shell version v3.6.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.2
Server has startup warnings: 
2018-02-02T16:27:11.395+0800 I STORAGE  [initandlisten] 
2018-02-02T16:27:11.395+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2018-02-02T16:27:11.395+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] 
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] 
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] 
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] 
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] 
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 65535 files. Number of processes should be at least 32767.5 : 0.5 times number of files.
2018-02-02T16:27:11.927+0800 I CONTROL  [initandlisten] 
>
```

## 删除卸载MongoDB
```bash
[root@virde ~]# sudo service mongod stop
[root@virde ~]# sudo yum erase $(rpm -qa | grep mongodb-enterprise)
[root@virde ~]# sudo rm -r /var/log/mongodb
[root@virde ~]# sudo rm -r /var/lib/mongo
```

## 配置MongoDB管理员用户

> 必须先配置管理员用户,才能开启权限

在MongoDB shell命令行中执行以下命令
```bash
> use admin ;
> db.createUser({
...     user:"adminUser",
...     pwd:"thisisyourpass",
...     roles:[{role:"root",db:"admin"}]
... });

```
## 修改配置文件,允许外网链接

```bash
[root@virde ~]# vim /etc/mongod.conf
```
配置文件如下
```
# 将bindIp改为0.0.0.0
# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.

# 开启权限认证
security:
  authorization: enabled
```
修改后的完整文件如下:
```
# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

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

# how the process runs
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

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


security:
  authorization: enabled

```

重启MongoDB。
```
[root@virde ~]# sudo service mongod restart
Stopping mongod:                                           [  OK  ]
Starting mongod:                                           [  OK  ]
```

## 安装配置完成,使用Robo3T测试链接
![](http://res.virde.cn/img/chun/blog/201802/1517561259245.png)

## 总结
* 其实整个安装过程并不复杂,但是各种配置实在头疼。
* 官方文档真的是最棒的!但是看不懂英文就很恶心。
posted @ 2018-10-20 13:08  黑风风  阅读(599)  评论(0编辑  收藏  举报

博文首发地址:https://blog.virde.xyz