mongodb入门到使用(上)

news2024/9/21 16:50:21

mongodb的安装与使用

  • 前言
  • 一、linux下载
  • 二、mongodb配置
  • 三、 mongodb服务管理
    • 启动
    • 服务查看
    • 停止
  • 四、远程连接
  • 五、SpringBoot整合
  • 总结


前言

本文主要针对一些项目的部署服务器在使用方面用到了mongodb,参考解决一些部署方面遇到的问题。

一、linux下载

  1. 使用wget下载

    wget https://downloads.mongodb.com/linux/mongodb-linux-x86_64-enterprise-rhel70-4.2.8.tgz
    
  2. 解压

     tar -zxvf mongodb-linux-x86_64-enterprise-rhel70-4.2.8.tgz
    
  3. 移动文件到指定目录,方便后续配置信息

     mv mongodb-linux-x86_64-enterprise-rhel70-4.2.8  /usr/local/mongob
    

二、mongodb配置

首先到达mongodb目录下

cd /usr/local/mongodb
  • 创建相应文件mongo文件

      需要注意的是-p的意思是创建多级目录
    
  mkdir data/log -p

创建日志文件,用于存放生成的日志

  touch mongodb.log
  • 载入配置信息
    1. 进入编辑文件目录文件
  vim mongodb.conf
  1. 编辑信息
# 端口号
port=27017
# 数据库文件位置
dbpath=/usr/local/mongodb/data/db
# 日志文件位置
logpath=/usr/local/mongodb/data/logs/mongodb.log

# 以追加日志的形式记录
logappend=true
# 滤掉无用日志信息,若需要调试使用请设置为false
quiet=true
# 以后台方式运行
fork=true
# 最大同时连接数
maxConns=100
# 不启用验证权限
noauth=true
# 启用用户账号权限
# auth=true# 提供外网访问,不对ip进行绑定,原理同redis的bindip
bind_ip = 0.0.0.0
# 开启日志,默认true
journal=true
# 提供外网访问,不对ip进行绑定,原理同redis的bindip
bind_ip = 0.0.0.0
  • 配置全局变量
    1. 编辑文件
vim /etc/profile
  1. 相关代码
# Set MongoDB Configration
export PATH=/usr/local/mongodb/bin:$PATH
  1. 保存配置信息
  source /etc/profile
  • 配置开启密码
    1. 进入mongo目录下,编辑配置信息
# 不启用验证权限
#noauth=true
# 启用用户账号权限
auth=true

注意:修改上述两个之后重启mondodb配置才能生效
2. 进入配置全局之后直接输入mongo进入mongo数据库中
3. 进入admin数据库中

  use admin
  1. 配置密码
    这里用户名与密码随机设置
  db.createUser({user:"你的用户名",pwd:"你的密码",roles:["root"]})

但是后面roles需要根据根据权限进行设置,具体权限参考下图
密码信息描述

这里设置成功之后会提示如下信息

Successfully added user: { "user" : "你的用户名", "roles" : [ "root" ] }
  1. 输入下列命令查看命令是否正确
  MongoDB Enterprise > db.auth("你的用户名","你的密码")
  1

正确就会弹出1

三、 mongodb服务管理

下面接收它的基本操作

启动

到目录mongo下通过上述配置过的配置文件进行启动

   mongodb -f mongodb.conf
  • 启动之后会有如下提示信息
[root@iZuf62wjxn3dumrn6z8eemZ mongodb]# mongod -f mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 24109
ERROR: child process failed, exited with error number 48
To see additional information in this output, start without the "--fork" option.

输入mongo就可以进入mongo中。

  • 如果启动遇到下面问题
Cannot connect to MongoDB. No suitable servers found: `serverSelectionTimeou

解决:使用下面这条命令
yum install net-snmp

服务查看

  • 可以根据占用端口号查看
  netstat -anp|grep 27017
  • 可以根据服务查看
  ps -ef|grep mongo

停止

  • 快速关闭(直接杀死进程)
    为了防止数据损坏需要使用
  kill -2 进程 来结束进程
  • 优雅的关闭
    需要登录客户端mongo
    切换到amdin库
use admin

命令关闭

db.shutdownServer()

四、远程连接

最后在远程配置好mongodb之后我们想在本地访问,步骤如下

  1. 首先进入配置目录,编辑配置信息
vim mongodb.conf
  1. 修改配置信息

如果bind_ip为127.0.0.1就是只能本机访问,需要修改为0.0.0.0
#提供外网访问,不对ip进行绑定,原理同redis的bind ip
bind_ip = 0.0.0.0

  1. 按照上述方式重启服务,这里我使用navicat进行连接
  • 没有设置密码
    就在验证那里选择None
    登录步骤
  • 如果按照上述设置密码之后
    在验证哪里选择password,输入上述在admin中配置的密码与账号
    登录描述

五、SpringBoot整合

最后我们在java中将mongodb整合进来

  1. pom依赖
<!-- mongodb -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

需要注意的是这里的mongodb还是需要和对应的SpringBoot版本匹配,这里我就不多做建议了
2. yml配置

data:
  mongodb:
    uri: mongodb://你的账号:你的密码@你的公网地址:27017/分配的数据库

注意如果遇到如下错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongo' defined in class path resource [org/springframework/boot/autoconfigure/mongo/MongoAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.mongodb.client.MongoClient]: Factory method 'mongo' threw exception; nested exception is java.lang.IllegalArgumentException: The connection string is invalid. Connection strings must start with either 'mongodb://' or 'mongodb+srv://
        at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:635) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
  1. 开启mongo的注解
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;

@SpringBootApplication
@EnableMongoRepositories
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

如果遇到错误多半是因为uri没有配置正确,好好检查一下就可以了。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了mongodb的使用,而mongodb在使用中遇到的常用命令我会在下一篇文章中讲到,尽情关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/383817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代数小课堂:向量代数(通过向量夹角理解不同的维度)

文章目录 引言I 计算向量的夹角1.1 毕达哥拉斯定理1.2 余弦定理1.3 计算向量的夹角II 向量夹角的应用2.1 用计算机自动筛选简历(对人进行分类)2.2 计算机进行文本自动分类的原理引言 根据余弦定理计算两个向量的夹角向量夹角的应用: 对文本进行自动分类、自动筛选简历。如果…

【上位机入门常见问题】Visual Studio 2022安装指导

Visual Studio 2022安装指导 这里给大家指导安装Visual Studio 2022 Community版本&#xff0c;也就是我们常说的社区版&#xff0c;这个版本是微软给开发者学习技术专门定制的免费版本&#xff0c;其他的专业版和企业版都是商业收费版本。对于我们学习&#xff0c;大家使用社…

使用Docker、navicat部署和连接GaussDB

一、在CentOS7上安装Docker工具 1.卸载之前老版本的Docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce 2.安装D…

TLS协议

TLS全称传输层安全协议&#xff0c;上一代是安全套接层&#xff08;SSL,不安全&#xff09;&#xff0c;用途广泛&#xff0c;最知名的是用于http&#xff0c;使http升级为https协议&#xff0c;最新版本为TLSv1.3&#xff08;推荐使用&#xff09;。TLS通过建立客户端和服务器…

Vue-router的引入和安装

什么是Vue-Router&#xff1f;Vue路由器是Vue.js的官方路由器&#xff0c;它与Vue.js核心深度集成&#xff0c;使用Vue轻松构建单页应用程序变得轻而易举。功能包括&#xff1a;嵌套路线映射动态路由模块化&#xff0c;基于组件的路由器配置路由参数&#xff0c;查询&#xff0…

常用的hive sql

细节&#xff1a;sql 中有涉及到正则匹配函数的&#xff0c;要注意转义符号 因为在不同语言下正则匹配规则是否需要加转义符号是不同的&#xff0c;举例&#xff0c;regexp_replace 函数&#xff0c;在hive sql的正则匹配规则的 \d 需要前面给它加上转义符号\&#xff0c;而在j…

RocketMQ5.0.0事务消息

目录 一、事务消息概览 二、事务消息实现机制 1. 事务消息发送流程 1)&#xff1a;发送事务消息类图 2)&#xff1a;生产端发送事务消息 3)&#xff1a;Broker存储事务消息 2. 生产者提交或回滚事务消息 1)&#xff1a;生产者发送提交或回滚事务请求 2)&#xff1a;Broker处…

【谷粒学院】微信扫码支付(224~238)

224.项目第十五天内容介绍 225.课程评论实现过程分析 226.课程支付功能需求分析 1、课程支付说明 &#xff08;1&#xff09;课程分为免费课程和付费课程&#xff0c;如果是免费课程可以直接观看&#xff0c;如果是付费观看的课程&#xff0c;用户需下单支付后才可以观看 &am…

CAD轴测图怎么画?

很多新手设计师小伙伴&#xff0c;不知道CAD轴测图怎么画&#xff1f;其实很简单&#xff0c;浩辰CAD中的超级轴测功能&#xff0c;可以方便地将CAD平面图转化为轴侧图&#xff0c;是绘制管线系统图的好帮手。今天就和小编一起来看看在浩辰CAD软件中通过调用超级轴测命令来绘制…

[数据结构]:08-顺序查找(顺序表指针实现形式)(C语言实现)

目录 前言 已完成内容 顺序查找实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-PSeqListFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容&#xff0c;除其中使用到C引用外&#xff0c;全为C语言代码。使用C引用主要是为了简化指针的使用&a…

webpack生产环境配置

3 webpack生产环境配置 由于笔记文档没有按照之前的md格式书写&#xff0c;所以排版上代码上存在问题&#x1f622;&#x1f622;&#x1f622;&#x1f622; 09 提取css成单独文件 使用下载插件 npm i mini-css-extract-plugin0.9.0 -D webpack配置此时a,b提取成单独文件,并且…

1378:最短路径(shopth)

1378&#xff1a;最短路径(shopth) 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 给出一个有向图G(V, E)&#xff0c;和一个源点v0∈V&#xff0c;请写一个程序输出v0和图G中其它顶点的最短路径。只要所有的有向环权值和都是正的&#xff0c;我们就允许图的边有…

有趣的小知识(二)浏览器内的秘密:了解Cookie基础知识

一、简介 Cookie是一种小型的文本文件&#xff0c;由Web服务器发送给Web浏览器&#xff0c;并存储在用户的计算机硬盘上。它通常用于记录用户的偏好、登录状态、购物车信息等&#xff0c;以便在用户下次访问该网站时能够提供更好的用户体验。Cookie通常包含网站的名称、Cookie的…

2023年工业自动化,机器人与控制工程国际会议(IARCE 2023)

2023年工业自动化&#xff0c;机器人与控制工程国际会议&#xff08;IARCE 2023&#xff09; 重要信息 会议网址&#xff1a;www.iarce.org 会议时间&#xff1a;2023年10月27-29日 召开地点&#xff1a;中国成都 截稿时间&#xff1a;2023年9月21日 录用通知&#xff1a;…

[创业之路-57] :商业计划书BP如何书写?总体框架!

引言&#xff1a;BP (Buiness Plan) &#xff0c;即商业计划书&#xff0c;本质上还是一份计划&#xff0c;是一份商业计划&#xff0c;即一种关于如何赚钱的计划&#xff0c;是一份通过组建公司&#xff0c;运营项目&#xff0c;进而赚钱的项目计划。什么是商业&#xff1f;商…

【计算机网络】ISO/OSI参考模型与TCP/IP模型

ISO/OSI参考模型与TCP/IP模型 一、ISO/OSI参考模型&#xff08;七层&#xff09; 一个理论模型&#xff0c;并未商用。 OSI参考模型有七层&#xff0c;自上而下分别为 应用层 &#xff1a; 所有能产生网络流量的应用程序都属于是应用层 典型协议&#xff1a;FTP&#xff08…

分布式锁详解

文章目录分布式锁是什么基于 Redis 实现分布式锁如何基于Redis实现一个简单的分布式锁为什么要给锁设置一个过期时间&#xff1f;如何实现锁的优雅续期&#xff1f;如何实现可重入锁&#xff1f;Redis 如何解决集群情况下分布式锁的可靠性&#xff1f;分布式锁是什么 java单机…

从客户端的角度来看移动端IM即时通讯的消息可靠性和送达机制

如何确保IM 不丢消息是个相对复杂的话题&#xff0c;从客户端发送数据到服务器&#xff0c;再从服务器抵达目标客户端&#xff0c;最终在 UI 成功展示&#xff0c;其间涉及的环节很多&#xff0c;这里只取其中一环「接收端如何确保消息不丢失」来探讨&#xff0c;粗略聊下我接触…

crmeb商城部署(踩坑及解决方法)

源码地址&#xff1a; https://gitee.com/ZhongBangKeJi/CRMEB 原版是PHP版&#xff0c;我也不懂PHP&#xff0c;但看到功能很全&#xff0c;而且有docker-compose的脚本可以部署&#xff0c;并且教程也很完善&#xff0c;就拿来部署试下。 所以也适用于和我一样&#xff0c;…

【NodeJs】NodeJs专题之理解企业BFF框架原理

BFF—服务于前端的后端 一、什么是BFF框架 BFF框架指的是一种逻辑分成,而非一种新技术即 Backend For Frontend&#xff08;服务于前端的后端&#xff09;&#xff0c;也就是服务器设计 API 时会考虑前端的使用&#xff0c;并在服务端直接进行业务逻辑的处理&#xff0c;又称…