博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 离线安装MongoDB 4.x(详细)
阅读量:3951 次
发布时间:2019-05-24

本文共 6390 字,大约阅读时间需要 21 分钟。

Linux 离线安装MongoDB 4.4.4

0.前言

版本:Centos7+MongoDB 4.4.4

官网:https://www.mongodb.com/

本篇文章安装配置为单个机器单个实例

如若安装单个机器多个实例多台机器集群,本篇文章仅限参考。

1. 下载

点击自定义版本下载,或者直接点击下载4.4.4版本

version:4.4.4Platform:RedHat / CentOS 7.0Package:tgz

2. 安装配置

上传到linux中

解压后移动文件存储位置并改名

tar -zxvf mongodb-linux-x86_64-rhel70-4.4.4.tgzmv mongodb-linux-x86_64-rhel70-4.4.4 /usr/local/mongodb

添加配置文件

cd /usr/local/mongodb/vi mongodb.conf

以下为配置文件mongodb.conf中的内容

#数据文件存放目录dbpath = /usr/local/mongodb/data/db#日志文件存放目录logpath = /usr/local/mongodb/logs/mongodb.log#默认端口27017port = 27017#以守护程序的方式启用,即在后台运行fork = true#允许远程连接,127.0.0.1只允许本地连接bind_ip=0.0.0.0#是否需要认证,如果启用,则需要创建mongodb账号密码,使用账号密码才可以远程访问#auth = true

然后创建mongodb.conf配置文件中配置的数据文件目录和日志文件

mkdir -p /usr/local/mongodb/data/dbmkdir -p /usr/local/mongodb/logstouch /usr/local/mongodb/logs/mongodb.log

3. 配置环境变量

vi /etc/profile

然后添加以下内容

export PATH=$PATH:/usr/local/mongodb/bin

使刚刚的修改立即生效

source /etc/profile

4. 启动mongo服务

mongod -f /usr/local/mongodb/mongodb.conf

启动成功如下

[root@iZbp185opgs9ov4aretwdxZ ~]# mongod -f /usr/local/mongodb/mongodb.conf about to fork child process, waiting until server is ready for connections.forked process: 11622child process started successfully, parent exiting

5. 连接mongo客户端

#未开启认证mongo
#开启认证使用账号密码连接mongo -u admin -p admin

连接成功如下

[root@iZbp185opgs9ov4aretwdxZ ~]# mongoMongoDB shell version v4.4.4connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodbImplicit session: session {
"id" : UUID("14909903-578d-4023-83cd-dec9703c904e") }MongoDB server version: 4.4.4---The server generated these startup warnings when booting: 2021-03-04T15:00:41.842+08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem 2021-03-04T15:00:42.732+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted 2021-03-04T15:00:42.732+08:00: You are running this process as the root user, which is not recommended 2021-03-04T15:00:42.732+08:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never' 2021-03-04T15:00:42.732+08:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'------ Enable MongoDB's free cloud-based monitoring service, which will then receive and display metrics about your deployment (disk utilization, CPU, operation statistics, etc). The monitoring data will be available on a MongoDB website with a unique URL accessible to you and anyone you share the URL with. MongoDB may use this information to make product improvements and to suggest MongoDB products and deployment options to you. To enable free monitoring, run the following command: db.enableFreeMonitoring() To permanently disable this reminder, run the following command: db.disableFreeMonitoring()--->

也可以通过ps -ef | grep mongo查看进程是否启动,显示两条即为启动

6. 关闭mongo服务

mongod --dbpath /usr/local/mongodb/data/db --logpath /usr/local/mongodb/logs/mongodb.log --shutdown

rs:PRIMARY> use adminrs:PRIMARY> db.shutdownServer()#退出后即关闭

7. 创建用户【建议】

# 切换到admin数据库use admin# 使用db.createUser() 创建一个管理员用户admin,角色为root,指定具体数据库db.createUser({
user:'admin',pwd:'admin',roles:[{
role:'root',db:'admin'}]})# db.auth()认证一下获取权限,认证通过后可以操作数据库,成功则会输出1db.auth("admin","admin")# use 命令也可以是创建数据库,当指定数据库不存在时即为创建,切换到一个新的数据库xtestuse xtest# 创建用户xtest dbOwner权限db.createUser({
user:'xtest',pwd:'xtest',roles:['dbOwner']})# 查看有哪儿些用户show users# 删除用户db.dropUser("user_name")

必须要创建一个管理员账号,创建完账号后,需要在配置文件mongodb.conf中开启auth认证,然后重启mongo服务

重启后需要通过刚刚创建的管理员账号密码登录连接客户端,否则show dbs命令无法查看到任何数据库,因为没有权限

客户端连接格式为:mongo -u 账号 --authenticationDatabase 数据库名 -p 密码

--authenticationDatabase 数据库名 选填

mongo -u admin --authenticationDatabase admin -p admin
mongo -u admin -p admin

role角色:

read    	允许用户读取指定数据库readWrite    	允许用户读写指定数据库dbAdmin    	允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profiledbOwner		数据库拥有者,包含readWrite、dbAdmin、userAdminuserAdmin    	允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户clusterAdmin    	只能切换在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。readAnyDatabase    	只能切换在admin数据库中可用,赋予用户所有数据库的读权限readWriteAnyDatabase    	只能切换在admin数据库中可用,赋予用户所有数据库的读写权限userAdminAnyDatabase    	只能切换在admin数据库中可用,赋予用户所有数据库的userAdmin权限dbAdminAnyDatabase    	只能切换在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。root    	只能切换在admin数据库中可用。超级账号,超级权限

8. 添加副本集和keyfile文件【可选】

(1)生成存储身份验证信息的keyfile文件

同时开启了auth认证和副本集需要keyfile文件,不配置的话启动时会报错:BadValue: security.keyFile is required when authorization is enabled with replica sets

cd /usr/local/mongodb/data/dbopenssl rand -base64 741 > mongodb.key#修改权限,不修改之后启动时会报错chmod 400 mongodb.key

(2)mongodb仅使用一个节点在MongoDB中启用副本集

修改配置文件添加副本集信息和keyfile位置信息

cd /usr/local/mongodb/vi mongodb.conf

以下为配置文件mongodb.conf中的内容

#数据文件存放目录dbpath = /usr/local/mongodb/data/db#日志文件存放目录logpath = /usr/local/mongodb/logs/mongodb.log#默认端口27017port = 27017#以守护程序的方式启用,即在后台运行fork = true#允许远程连接,127.0.0.1只允许本地连接bind_ip=0.0.0.0#是否需要认证,如果启用,则需要创建mongodb账号密码,使用账号密码才可以远程访问auth = true#副本集名称replSet=rs#存储身份信息的秘钥文件keyFile=/usr/local/mongodb/data/db/mongodb.key

(3)重启mongo服务

mongod --dbpath /usr/local/mongodb/data/db --logpath /usr/local/mongodb/logs/mongodb.log --shutdownmongod -f /usr/local/mongodb/mongodb.conf

(4)使用以下命令初始化副本集 rs.initiate()

登录到MongoDB shell并运行命令rs.initiate()

> rs.initiate(){
"info2" : "no configuration specified. Using a default configuration for the set", "me" : "iZbp185opgs9ov4aretwdxZ:27017", "ok" : 1, "$clusterTime" : {
"clusterTime" : Timestamp(1615022835, 1), "signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }, "operationTime" : Timestamp(1615022835, 1)}rs:SECONDARY>

查看副本集信息

rs.status()

至此完成。

9. 可视化工具

点击下载工具,该工具部分功能试用30天免费。

如何连接:

使用该工具连接MongoDB时

如果MongoDB设置无需密码认证,则直接Connections->Create->Basic->输入Server中ip和端口即可->点击Test Connecting->如果出现绿色ok则成功,红色字体报错则失败(失败原因为可能为ip或端口有错误)->连接成功后点击Save & Connect->完成

如果MongoDB设置需密码认证,也就是配置文件设置了auth = true,则Connections->Create->Basic->输入Server中ip和端口->点击Authentication->Mode选择Basic(Username/Password),Auth DB添加数据库名,User Name添加账号名,Password填写密码->点击Test Connecting->如果出现绿色ok则成功,红色字体报错则失败->连接成功后点击Save & Connect->完成

失败原因为可能为ip端口有错误,可能为数据库账号密码错误,都检查无误后如果仍无法连接,应检查配置文件中是否配置auth = true,然后关闭mongo服务后重新启动,启动后在黑窗口通过账号密码连接mongo客户端,重新创建账号密码,在工具中使用新创建的账号密码连接即可)

如果阿里云服务器无法连接,则有可能是云盾拦截,配置白名单:点击

或更换手机热点试一下

转载地址:http://jduzi.baihongyu.com/

你可能感兴趣的文章
这十大挑战,摆在深度学习面前(附论文)
查看>>
用Python分析李小璐微博.........贾乃亮到底.........
查看>>
教你用一行Python代码实现并行(附代码)
查看>>
Google发布了2017年最常被搜索的一个词,竟然看哭了几亿人
查看>>
学习 Python 编程的 19 个资源
查看>>
收藏!超全机器学习资料合集!(附下载)
查看>>
搞笑动图:这些痛,只有程序员懂…
查看>>
不学Python的同学,“跳一跳”都输了
查看>>
资源:惊艳全球数据行业的16个数据可视化例子
查看>>
先搞懂这八大基础概念,再谈机器学习入门!
查看>>
2017年深度学习必读31篇论文(附下载地址)
查看>>
数据看穿一生:前半生赚钱养娃,后半生赚钱买命
查看>>
【资源】年底送你一套编程视频(含源码)
查看>>
用Python给“冲顶大会”做外挂!王思聪们还敢撒币吗?
查看>>
用算法撩妹都不会,别跟我说你是程序员(文末附Python零基础入门课程)
查看>>
2017人工智能与机器学习年终盘点(重要工具资源汇总)
查看>>
收藏!超全机器学习资料合集!(附下载)
查看>>
绝地求生外挂源代码被公布,或迎神仙大战时代?
查看>>
火爆全球的区块链到底是怎么一回事?一文带你看懂
查看>>
当白帽黑客遇到了网络诈骗,他是如何套路并反制骗子的?
查看>>