当前位置:首页 > 数据库 > Linux下MongoDB安装和配置详解

Linux下MongoDB安装和配置详解

2022年11月09日 23:19:28数据库6

Linux下MongoDB安装和配置详解

 

一、创建MongoDB的安装路径

在/usr/local/  创建文件夹mongoDB

mkdir mongoDB

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

二、上传文件到Linux上的/usr/local/source目录下

1. 我首先在mongoDB下载路径下载mongoDB下载对应的版本.

2.通过FTP工具将安装包上传到linux机器上面.

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

三、解压文件

1. 进入到/usr/local/source目录:

cd /usr/local/source

2. 运行如下命令: tar -zxvf mongodb-linux-i686-3.2.13-rc0.gz -C /usr/local/mongoDB

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

2. 重命名

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

四、创建配置文件

1. 创建数据库文件夹

cd /usr/local/mongoDB/mongodbserver

mkdir data

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

2. 创建日志文件夹

cd /usr/local/mongoDB/mongodbserver

mkdir log

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

3. 创建配置文件夹与配置文件

3.1 创建配置文件夹etc

cd /usr/local/mongoDB/mongodbserver

mkdir etc

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

3.2 创建配置文件mongodb.conf

cd /usr/local/mongoDB/mongodbserver/etc

vim mongodb.conf

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记
dbpath=/usr/local/mongoDB/mongodbserver/data
logpath=/usr/local/mongoDB/mongodbserver/logs/mongodb.log
port=27017
fork=true
journal=false storageEngine=mmapv1
Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

五、启动MongoDB

1. mongodb安装好后第一次进入是不需要密码的,也没有任何用户,通过shell命令可直接进入,cd到mongodb目录下的bin文件夹,执行命令./mongo即可,如下所示:

./mongod --config /usr/local/mongoDB/mongodbserver/etc/mongodb.conf

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

启动成功后,访问http://npfdev1:27017/ , 可以看到:

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

2、添加管理用户(mongoDB 没有无敌用户root,只有能管理用户的用户 userAdminAnyDatabase)

利用mongo命令连接mongoDB服务器端:

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

> use admin
switched to db admin
> db.createUser( {user: "pfnieadmin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]});

成功后,你将会看到:

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

注:添加完用户后可以使用show users或db.system.users.find()查看已有用户.

3、添加完管理用户后,关闭MongoDB,并使用权限方式再次开启MongoDB,这里注意不要使用kill直接去杀掉mongodb进程,(如果这样做了,请去data/db目录下删除mongo.lock文件),可以使用db.shutdownServer()关闭.

4、使用权限方式启动MongoDB

在配置文件中添加:auth=true , 然后启动:

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

5、进入mongo shell,使用admin数据库并进行验证,如果不验证,是做不了任何操作的。 
Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记
> use admin
> db.auth("pfnieadmin","123456")   #认证,返回1表示成功

六、将mongod路径添加到系统路径中,方便随处执行mongod命令

1. 在/etc/profile文件中,添加 export PATH=$PATH:/usr/local/mongoDB/mongodbserver/bin

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

2. 执行source /etc/profile,使系统环境变量立即生效

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

七、将mongo路径软链到/usr/bin路径下,方便随处执行mongo命令

1. 执行命令: ln -s /usr/local/mongoDB/mongodbserver/bin/mongo  /usr/bin/mongo

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

八、测试是否方便随处执行mongo命令

1. 回到任意路径下,执行mongo命令,连接mongod服务

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

2. 关闭mongod服务,执行db.shutdownServer()

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

2017-04-20T18:32:26.865+0800 E QUERY [thread1] Error: shutdownServer failed: {
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { shutdown: 1.0 }",
"code" : 13
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.shutdownServer@src/mongo/shell/db.js:302:1
@(shell):1:1

解决办法,执行下面的语句,添加权限:

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记
db.updateUser(
 "pfnieadmin",
        {
           roles : [
                     {"role" : "userAdminAnyDatabase","db" : "admin"},
                     {"role" : "dbOwner","db" : "admin"},
{"role" : "clusterAdmin", "db": "admin"} ] } )
Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

然后在执行db.shutdownServer().

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

或者执行下面的命令关闭:

killall mongod

3. 启动mongod服务

mongod --config /usr/local/mongoDB/mongodbserver/etc/mongodb.conf

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记 

九、MongoDB设置为系统服务并且设置开机启动

1.通过上面简单的操作,我们已经将MongoDB配置文件配置完成,那么接下里我们将为MongoDB设置系统服务。
2.首先添加MongoDB系统服务,命令如下:vim /etc/rc.d/init.d/mongod
3.打开编辑器后,我们将下面的配置粘贴进去,然后保存

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

4.保存完成之后,添加脚本执行权限,命令如下:chmod +x /etc/rc.d/init.d/mongod 
5.启动MongoDB,service mongod start 如下图所示,则说明启动成功:

Linux下MongoDB安装和配置详解 _ JavaClub全栈架构师技术笔记

6.可以使用命令service mongod stop关闭MongoDB服务。
7. 验证mongoDB是否启动,输入命令lsof -i :27017,监测端口已经在使用中,所以说启动已经完成。

作者:brady-wang
来源链接:https://www.cnblogs.com/brady-wang/p/10488541.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/database/69216.html

标签: MongoDBGo
分享给朋友:

“Linux下MongoDB安装和配置详解” 的相关文章

实习第一周(Golang)

实习第一周(Golang)

目录 一,序 二,基础学习 三,环境安装 四,项目操练 GO111MODULE...

go系列之利用Gin框架获取form参数

go系列之利用Gin框架获取form参数

利用Gin框架获取form参数 除了通过URL查询参数提交数据到服务器外,常用的还有通过Form表单的方式。Form表单相比URL查询参数,用户体验好,可以承载更多的数据,尤其是文件上传,所以也更为方便。Form 表单对于Form表单,我们不会陌生,比如...

WebFlux 集成 Thymeleaf 、 Mongodb 实践,Spring Boot 2

WebFlux 集成 Thymeleaf 、 Mongodb 实践,Spring Boot 2

这是泥瓦匠的第105篇原创 文章工程: JDK 1.8 Maven 3.5.2 Spring Boot 2.1.3.RELEASE 工程名:springboot-webflux-5-thymeleaf-mong...

Spring Boot WebFlux 集成 Mongodb 数据源操作

Spring Boot WebFlux 集成 Mongodb 数据源操作

WebFlux 整合 Mongodb 前言 上一讲用 Map 数据结构内存式存储了数据。这样数据就不会持久化,本文我们用 MongoDB 来实现 WebFlux 对数据源的操作。 什么是 MongoDB ? 官网:https://...

Go语言为并发而生

Go语言为并发而生 如上所述,硬件制造商正在为处理器添加越来越多的内核以提高性能。所有数据中心都在这些处理器上运行,更重要的是,今天的应用程序使用多个微服务来维护数据库连接,消息队列和维护缓存。因此,开发的软件和编程语言应该可以轻松地支持并发性,并...

关于picgo中阿里云图床的设置

关于picgo中阿里云图床的设置

关于picgo中阿里云图床的设置 1.登录阿里云 阿里云-上云就上阿里云 (aliyun.com) 点击控制台 点击三道杠 看到了吗? 点击常用入口这儿 点击查看...

Kafka启动报错 : ERROR Processor got uncaught exception

Kafka启动报错 : ERROR Processor got uncaught exception

参照我之前的一篇博文Kafka学习之(二)Centos下安装Kafka安装了kafka并启动,状况并不像我之前最初的预期,报错了,并且我在当前Linux环境下安装的Java版本、Kafka版本都是和之前博文一样的,第一感觉难道是因为Linux(Centos)的版本不一致??? ...

go面试题[3]

第一题 1.下面的两个切片声明中有什么区别?哪个更可取? A. var a []int B. a := []int{} 参考答案及解析:A 声明的是 nil 切片;B 声明的是长度和容量都为 0 的空切片。第一种切片声明不会分配内存,优先选择。 2. A、B、C...

goj基础环境的配置

goj基础环境的配置

一、Goland官网下载 官网下载地址:https://www.jetbrains.com/go/download/other.html 运行并激活Goland 先下载相关的破解补丁:http://c.biancheng.net...

Go 面试题(附答案解析)

1、写出下面代码输出内容 package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前")...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。