MongoDB_7 Centos7部署
center-sept Lv2

MongoDB_7 Centos7部署

1.环境准备

  • 操作系统:Linux CentOS 7
  • 安装包:mongodb-linux-x86_64-rhel70-7.0.2-rc1.tgz

2.软件启动安装

1.将下载好的安装包上传到 Linux 服务器某个目录下,并使用以下命令解压压缩包。

1
tar -zxvf mongodb-linux-x86_64-rhel70-7.0.2-rc1.tgz

2.将解压后的目录移动到 /usr/local 目录下,并改名为 mongodb

1
mv mongodb-linux-x86_64-rhel70-7.0.2-rc1 /usr/local/mongodb

3.进入 mongodb 目录,并创建文件夹 data,在 data 文件夹下再创建 db 文件夹(用于存放数据库数据)和 log文件夹(存放 mongo 日志)。然后为其设置可读写权限。

1
2
3
4
5
6
7
8
# 进入目录
cd /usr/local/mongodb/

# 创建三个文件夹
mkdir data data/db data/log

# 设置可读写权限
sudo chmod 777 data/db data/log/

4.在 mongodb 目录下新建配置文件 mongodb.conf(可选,但建议配置),打开文件输入以下内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 数据库数据存放目录
dbpath=/usr/local/mongodb/data/db
# 日志文件存放目录
logpath=/usr/local/mongodb/data/log/mongodb.log
# 日志追加方式
logappend=true
# 端口
port=27017
# 是否认证
auth=true
# 以守护进程方式在后台运行
fork=true
# 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
bind_ip=0.0.0.0

5.配置环境变量,使用 sudo vi /etc/profile 命令打开系统文件,并在末尾加入以下内容后保存,最后使用 source /etc/profile 命令重启系统配置。

1
2
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin

6.完成以上步骤即可启动 Mongo 服务。

1
2
3
4
5
# -f 等同于--config
mongod -f /usr/local/mongodb/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 1566
child process started successfully, parent exiting

7.安装客户端,安装mongdb shell工具。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 下载安装包
wget https://fastdl.mongodb.org/linux/mongodb-shell-linux-x86_64-rhel70-3.6.23.tgz
# 解压
tar -zxvf mongodb-shell-linux-x86_64-rhel70-3.6.23.tgz
# 移动到统一文件夹下
mv mongodb-linux-x86_64-rhel70-3.6.23 /usr/local/mongodb-shell
# 配置环境变量
vi /etc/profile
# 如下:
# MongoDB-shell环境变量
export MONGODB_SHELL_HOME=/usr/local/mongodb-shell
export PATH=$PATH:$MONGODB_SHELL_HOME/bin
# 配置生效
source /etc/profile
# 测试连接
mongo
# 进入session说明成功

3.其他配置

1.开放端口

1
2
3
4
5
6
7
# 开放27017端口
firewall-cmd --zone=public --add-port=27017/tcp --permanent
# 让配置生效
firewall-cmd --reload
# 查看开放的端口,验证是否成功
firewall-cmd --zone=public --list-ports
#或者直接关闭防火墙

2.检查服务状态

1
2
3
4
5
6
# 查看 mongodb 进程状态
ps aux | grep mongo
# 检查端口是否启动
netstat -lanp | grep 27017
# 如果 netstat 命令没有找到,先进行安装
yum install -y net-tools

3.停止服务

1
2
3
4
# 通过进程ID杀死
kill -9 PID
# 通过mongod命令关闭mongodb服务
mongod -f /usr/local/mongodb/mongodb.conf --shutdown

4.开机启动

使用 vi /lib/systemd/system/mongodb.service 命令新建开机启动配置文件,输入以下内容保存。

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --shutdown
PrivateTmp=true
[Install]
WantedBy=multi-user.target

然后依次执行以下4个命令,使之生效。

1
2
3
4
5
6
7
8
# 启动 mongodb
systemctl start mongodb.service
# 查看服务状态
systemctl status mongodb.service
# 开机自启动
systemctl enable mongodb.service
# 修改 mongodb.service文件时,重新加载文件
systemctl daemon-reload

4.用户角色和密码

启动 MongoDB 服务默认是没有账号密码的,即连接上即可进行各种操作。

但是我们在启动配置文件中,指定了 auth=true,即开启了认证,所以链接后需要认证才能执行操作。默认情况下,MongoDB 是没有管理员账户的,所以我们需要在 admin 数据库中使用 db.createUser() 命令添加管理员帐号或其他角色。

1.内置角色

数据库用户角色:read、readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
内部角色:__system

2.创建管理员账号

1
2
3
4
5
6
7
> use admin
> db.createUser({
user: "admin",
pwd: "admin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ],
mechanisms : ["SCRAM-SHA-1"]
})

3. 验证

1
2
3
4
5
> use admin
> db.auth("admin","admin")
> show tables
system.users
system.version

4.演示对单个数据库创建用户和密码

平常开发中,一般新项目会创建新的数据库,而且创建一个新的数据库用户仅对此数据库进行读写。

以下演示创建 chenpi 用户,密码为123456,并设置对 nobody 数据库读写的权限。注意,创建新用户前,先使用 admin 用户登录,因为我们刚才为 admin 用户设置了 userAdminAnyDatabase 权限。

1
2
3
4
5
6
7
# 先使用有创建用户权限的用户登录
> use admin
> db.auth("admin","123456")
# 新用户的认证库
> use test
# 创建chenpi用户,密码123465,对nobody数据库有读写权限
> db.createUser({user:'test',pwd:'test',roles:[{role:'readWrite',db:'nobody'}],mechanisms : ["SCRAM-SHA-1"]})

5.MongoDB可视化工具(Studio 3T For MongoDB)

[Download Studio 3T for MongoDB | Windows, macOS & Linux](

 评论