MongoDB数据库安装与卸载及配置

说明

本实例环境为:VMware虚拟机centos7系统,安装社区版MongoDB4.4.4。

配置程序包管理系统(使用yum安装)

创建一个 /etc/yum.repos.d/mongodb-org-4.4.repo 文件,以便使用yum命令直接安装MongoDB:

[root@localhost /]# vim /etc/yum.repos.d/mongodb-org-4.4.repo
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

安装MongoDB软件包

安装最新的稳定版MongoDB:

[root@localhost yum.repos.d]# yum install -y mongodb-org

另外,要安装特定版本的MongoDB,请分别指定每个组件包,并将版本号附加到包名中,如下:

yum install -y mongodb-org-4.4.4 mongodb-org-server-4.4.4 mongodb-org-shell-4.4.4 mongodb-org-mongos-4.4.4 mongodb-org-tools-4.4.4

也可以指定任何可用的MongoDB版本。但是yum,当有新版本可用时,将升级软件包。为防止意外升级,请固定安装包。请在 /etc/yum.conf 文件中添加exclude指令:

exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

启停MongoDB服务

[root@localhost yum.repos.d]# systemctl start mongod    # 启动MongoDB
[root@localhost yum.repos.d]# systemctl restart mongod # 重启MongoDB
[root@localhost yum.repos.d]# systemctl stop mongod    # 停止MongoDB
[root@localhost yum.repos.d]# systemctl status mongod # 查看MongoDB状态
[root@localhost yum.repos.d]# systemctl enable mongod # 设置MongoDB开机启动

如果在启动MongoDB时收到类似一下内容的错误时:

Failed to start mongod.service: Unit mongod.service not found.

首先运行一下命令:

systemctl daemon-reload

然后再次运行上面的启动命令。

MongoDB配置

默认的MongoDB配置文件

[root@localhost /]# cat /etc/mongod.conf 
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
# 指定MongoDB日志文件 systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log # Where and how to store data.
# 指定MongoDB数据存放目录 storage: dbPath: /var/lib/mongo journal: enabled: true # engine: # wiredTiger: # how the process runs
# MongoDB服务运行方式 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  # MongoDB服务运行端口 bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.允许连接的IP #security: #operationProfiling: #replication: #sharding: ## Enterprise-Only Options #auditLog: #snmp: 

卸载MongoDB

要从系统中完全删除MongoDB,必须删除MongoDB应用程序本身,配置文件以及任何包含数据和日志的目录。

1. 停止MongoDB服务

systemctl stop mongod

2. 删除软件包

删除以前安装的所有MongoDB软件包

yum erase $(rpm -qa | grep mongodb-org)

3. 删除日志和数据目录

删除MongoDB日志文件和数据库

rm -r /var/log/mongodb
rm -r /var/lib/mongo

MongoDB卸载完成。

添加用户、安全认证

首先必须使用admin数据库,进行新用户授权。

MongoDB副本集默认会创建local、admin数据库,local数据库主要存储副本集的元数据,admin数据库则主要存储MongoDB的用户、角色等信息。
> use admin
switched to db admin
> db
admin
> db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})
Successfully added user: {
	"user" : "root",
	"roles" : [
		{
			"role" : "root",
			"db" : "admin"
		}
	]
}

使用访问控制重新启动MongoDB服务

1. 关闭mongod实例,例如:从mongo外壳程序中,发出一下命令:

db.adminCommand( { shutdown: 1 } )

2. 退出mongo外壳

3. 在mongod启用访问控制的情况下启动

  1)如果mongod从命令行启动,请添加--auth命令行选项:

mongod --auth --port 27017 --dbpath /var/lib/mongodb

  2)如果mongod使用配置文件启用,请添加 security.authorization 配置设置:

security:
    authorization: enabled

现在,连接到该实例的客户端必须将自己认证为MongoDB用户。客户只能执行由其分配的角色确定的操作。

以用户管理员的身份连接并进行身份验证

使用mongo外壳,您可以:

  • 通过传递用户凭据连接到身份验证
  • 或者首先连接而不进行身份验证,然后发出db.auth() 进行身份验证
  • 连接期间进行身份验证
  • 连接后进行身份验证

启动mongo外壳以及命令行选项: -u <username> -p --authenticationDatabase <database> 

mongo --port 27017  --authenticationDatabase "admin" -u "myUserAdmin" -p

出现提示时输入密码。

将mongo外壳连接到mongod:

mongo --port 27017

在mongo外壳程序中,切换到身份验证数据库,然后使用auth方法进行身份验证: db.auth(<username>,<pwd>) 。

从mongo shell的4.2版本开始,您可以将passwordPrompt()方法与各种身份验证/管理方法/命令结合使用,以提示输入密码,而不是直接在方法/命令调用中指定密码。但是,您仍然可以像在早期版本的mongo shell中一样直接指定密码。

> use admin
switched to db admin
> db.auth("root",passwordPrompt())
Enter password: 
1

  

 

posted @ 2021-02-19 18:29  huige185  阅读(499)  评论(0编辑  收藏  举报