安装mongo步骤

一、配置包管理系统 (yum)

# 创建一个/etc/yum.repos.d/mongodb-org-5.0.repo文件,一边可以使用yum命令直接安装mongo
vi /etc/yum.repos.d/mongodb-org-5.0.repo
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

二、安装mongodb包

# 安装mongodb最新稳定版本
sudo yum install -y mongodb-org
# 安装特定版本mongodb
sudo yum install -y mongodb-org-5.0.6 mongodb-org-database-5.0.6 mongodb-org-server-5.0.6 mongodb-org-shell-5.0.6 mongodb-org-mongos-5.0.6 mongodb-org-tools-5.0.6
# 虽然可以指定任何可用的 MongoDB 版本。但是使用yum当有更新的版本可用时会升级软件包。为防止意外升级,使用以下exclude指令添加到您的/etc/yum.conf文件中固定包。
exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

# 默认情况下,MongoDB 使用mongod用户帐户运行并使用以下默认目录:
/var/lib/mongo
/var/log/mongodb
# 包管理器在安装期间创建默认目录。所有者和组名称是mongod。

# 使用非默认目录
1. 创建一个或者多个目录
2. 编辑配置文件/etc/mongod.conf并修改以下字段:
	1)storage.dbPath指定新的数据目录路径(例如/some/data/directory)
	2)systemLog.path指定新的日志文件路径(例如/some/log/directory/mongod.log)
3. 确保运行 MongoDB 的用户有权访问一个或多个目录:
	# sudo chown -R mongod:mongod <directory>
	sudo chown -R mongod:mongod /var/lib/mongo
	sudo chown -R mongod:mongod /var/log/mongodb
	如果更改运行 MongoDB 进程的用户,则必须 授予新用户访问这些目录的权限
4. 强制执行,需要配置SELinux,参考:https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-red-hat/#std-label-install-rhel-configure-selinux

三、启动/关闭/重启 mongodb

# 使用以下指令启动mongo (建议加上权限之后在对外开放端口,没有权限容易被病毒攻击)
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log -f /etc/mongod.conf --fork
# 查看日志
tail -f /var/log/mongodb/mongod.log

# 使用以下方法关闭mongo服务(***不要使用kill -9 pid的方式)
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log -f /etc/mongod.conf --shutdown

# 或者进入mongo shell
mongo
# 切换到admin
use admin;
# 关闭mongo服务
db.shutdownServer();

###############################################################
# 启动mongodb (使用该指令启动会报错原因未知)
# [root@VM-0-7-centos ~]# sudo systemctl start mongod
# Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details.
# mongod.service: control process exited, code=exited status=1
# sudo systemctl start mongod
# 如果出现 Failed to start mongod.service: Unit mongod.service not found. 运行以下指令
# sudo systemctl daemon-reload
# 停止mongodb
# sudo systemctl stop mongod
# 重启mongodb
# sudo systemctl restart mongod
# 验证mongodb是否成功启动
# sudo systemctl status mongod
# 以下指令保证mongodb在系统重启后启动
#sudo systemctl enable mongod
###############################################################

四、开启权限认证/验证权限是否生效

# 创建用户
# 切换到想要创建用户的数据库
use admin
// 也使用其他数据库创建用户, 以创建最高权限用户为例
db.createUser({
    user: '<username>',
    pwd: '<password>',
    roles: [ //权限列表, role参照后面内置角色说明
        {role:'root', db: 'admin'}
    ]
})
# 启用权限验证
Mongodb 默认是关闭验证的。两种方法启用验证:
1. 修改配置文件打开 /etc/mongod.conf
	security:
	  authorization: enabled
	或者添加
	auth: true // 使用这个启动时候需要加上 --auth参数 建议用第一个
	# 加上权限后可以设置,外部访问 bindIp: 0.0.0.0
2. 或者在进程启动参数加上 --auth。
# 加权限后连接方式
mongo工具有两个方式验证用户: # mongosh -u "<username>" -p "<password>" --authenticationDatabase "admin"
1. 连接前,后面接上命令行参数 -u "<username>" -p "<password>" --authenticationDatabase "admin"2. 连接后,使用 use admin db.auth('<username>','<password>')# 验证权限是否生效
mongosh // 登录mongo shell
use admin; 
db.sirius.insert({'name': 'sirius'}) // 执行一条插入操作
WriteCommandError({ // 插入失败
	"ok" : 0,
	"errmsg" : "command insert requires authentication",
	"code" : 13,
	"codeName" : "Unauthorized"
})
db.auth('<username>','<password>') //验证权限
db.sirius.insert({'name': 'sirius'}) // 重新执行
WriteResult({ "nInserted" : 1 }) //插入成功

五、卸载mongodb

# 停止进程
sudo service mongod stop
# 删除软件包
sudo yum erase $(rpm -qa | grep mongodb-org)
# 删除mongodb数据库和日志文件
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo

参考链接:

  1. https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-red-hat/
  2. https://www.runoob.com/mongodb/mongodb-linux-install.html
  3. https://blog.csdn.net/zaishijizhidian/article/details/83346939
  4. https://segmentfault.com/a/1190000021616620
  5. https://segmentfault.com/a/1190000009841784
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值