开源的文档型数据库--MongoDB(安装)

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: MongoDB 是一个开源的、文档数据库管理系统。

1、简介

MongoDB 是一个开源的、文档数据库管理系统。它提供了高性能、高可扩展性和高可用性。
MongoDB 使用了一种称为 BSON 的二进制形式的 JSON 来存储数据。这使得 MongoDB 可以轻松地存储各种数据类型,包括大型对象和二进制文件。
MongoDB 的一个重要特性是它的分布式架构。它可以在多台服务器上分布数据,并可以在这些服务器之间进行自动故障转移。这使得 MongoDB 非常适合大规模的数据集,并可以提供高可用性。
MongoDB 还提供了一个强大的查询功能,可以方便地查询和处理数据。它还支持索引和聚合操作,使得对数据进行统计和分析变得更加容易。
而且MongoDB 是最像关系型数据库(MySQL)的非关系型数据库。
总的来说,MongoDB 是一个功能强大且易于使用的数据库管理系统,适用于各种应用场景, 并且可以与其他软件和技术结合使用,比如搜索引擎、消息队列、云计算平台等。

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

中文网:https://www.mongodb.org.cn/ (可能会有点旧)

2、特点

MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库。具体特点总结如下:

  1. 面向集合存储,易于存储对象类型的数据
  2. 模式自由
  3. 支持动态查询
  4. 支持完全索引,包含内部对象
  5. 支持复制和故障恢复
  6. 使用高效的二进制数据存储,包括大型对象(如视频等)
  7. 自动处理碎片,以支持云计算层次的扩展性
  8. 支持 Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++语言的驱动程 序, 社区中也提供了对Erlang及.NET 等平台的驱动程序
  9. 文件存储格式为 BSON(一种 JSON 的扩展)

3、安装

安装包下载地址:https://www.mongodb.com/try/download/community

imgimage.png

3.1 Windows安装(msi)

下载安装包。
image.png
双击进入安装程序。
image.png
Next,下一步。
image.png
image.png
image.png
image.png
image.png
在这个页面中,你可以选择:
选择Install MongoD as a service ,可以将MongoDB 安装为服务(安装为服务可以使用Windows服务来进行自启动,更加方便,只有选择安装为服务才可以进行下面的配置)

  • Run service as Network Service user ,即以网络服务用户身份运行服务(默认)

这是 Windows 内置的 Windows 用户帐户

  • Run Service as a local or domain user, 即以本地或域用户身份运行服务

对于现有的本地用户帐户,为帐户域指定一个句点(即 .,上图即为该情况)并为用户指定帐户名称和帐户密码。对于现有域用户,指定该用户的帐户域、帐户名称和帐户密码。

  • Service Name 即服务名称。指定服务名称。默认名称是 MongoDB。如果您已有具有指定名称的服务,则必须选择其他名称。
  • Data Directory 即数据目录。指定数据目录,对应--dbpath。如果目录不存在,安装程序将创建目录并将目录访问权限设置给服务用户。
  • Log Directory 即日志目录。指定Log目录,对应--logpath。如果目录不存在,安装程序将创建目录并将目录访问权限设置给服务用户。

选择完毕后点击next。
image.png
点击install就可以开始安装了。
image.png
image.png
安装完成之后。
image.png
在data目录新建db目录(如果你有就不用了)。
image.png
在log目录下新建mongodb.log文件(如果你有就不用了)。
image.png
在安装目录新建文件mongo.config

dbpath=F:\software\mongoDB\data\db #你的数据库路径

logpath=F:\software\mongoDB\log\mongodb.log #日志输出文件路径

logappend=true #错误日志采用追加模式

journal=true #启用日志文件,默认启用

quiet=true #过滤掉无用的日志信息,若需要调试使用请设置为false

port=27017 #端口号 默认为27017

3.1.1 命令行下运行 MongoDB 服务器

为了从命令提示符下运行 MongoDB 服务器,你必须从 MongoDB 目录的 bin 目录中执行 mongod.exe 文件。
image.png
输入命令运行MongoDB服务:
image.png

mongod --dbpath F:\software\mongoDB\data\db #换成你的地址

image.png
浏览器打开
http://localhost:27017/
image.png
说明启动成功。

3.1.2 安装 MongoDB服务

通过执行 mongod.exe,使用 --install 选项来安装服务,使用 --config 选项来指定之前创建的配置文件。
image.png

mongod --config "F:\software\mongoDB\mongo.config" --install --serviceName "MongoDB"

打开任务管理器。
image.png

3.1.3 配置环境变量

将MongoDB的bin目录的路径加入环境变量
image.png

image.png
image.pngimage.png
image.png
image.png
点击确认即可。
image.png

3.2 Linux 安装 (CentOS)

安装包下载地址:https://www.mongodb.com/try/download/community
MongoDB提供了linux平台上32位和64位的安装包,你可以在官网下载安装包。
image.png

3.2.1 安装

安装前我们需要安装 CentOs 平台依赖包。

sudo yum install libcurl openssl

这里我们选择 tgz 下载,下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) ,wget如果下载得很慢的话,就选择直接下载然后上传即可。image.png

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.14.tgz # 下载

tar -zxvf 包名  # 解压

mv 解压后的包名  /usr/local/mongodb  # 将解压包拷贝到指定目录

为 MongoDB 创建数据目录。

 sudo mkdir -p /usr/local/mongodb/data/db

为 MongoDB 创建日志目录。

 sudo mkdir -p /usr/local/mongodb/data/log

设置可读写权限:

sudo chmod 666 db/
sudo chmod 666 log/

在 mongoDB 目录下新建配置文件 mongodb.conf, 使用以下命令创建。

sudo vim /usr/local/mongodb/mongodb.conf

将以下内容添加到文件中:

dbpath=/usr/local/mongodb/data/db #你的数据库路径
# 日志文件存放目录
logpath=/usr/local/mongodb/data/log/mongodb.log #日志输出文件路径

# 日志追加方式
logappend=true
# 端口
port=27017
# 是否认证
auth=true
# 以守护进程方式在后台运行
fork=true
# 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
bind_ip=0.0.0.0

image.png

3.2.2 配置环境变量

sudo vi /etc/profile

image.png

source /etc/profile

3.2.3 创建mongoDB服务

使用以下命令创建启动配置文件

vi /lib/systemd/system/mongodb.service

复制粘贴以下内容保存,如果有些地方跟你的不同,记得改一下。

[Unit]
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target
[Service]
    Type=forking
    ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --shutdown
    PrivateTmp=true
[Install]
    WantedBy=multi-user.target

image.png
重新加载文件:

systemctl daemon-reload

3.2.4 命令

启动:

systemctl start mongodb.service

重启:

systemctl restart mongodb.service

停止:

systemctl stop mongodb.service

开机自启:

systemctl enable mongodb.service

查询服务状态:

systemctl status mongodb.service

4、Docker (个人推荐)

访问 MongoDB 镜像库地址: 。
image.png
image.png
秉着不选最新的原则,我们就选后面一个版本就行了。

docker pull mongo:4.2.23

image.png
安装完成后,我们可以使用以下命令来运行 mongo 容器:

docker run --name mongo -p 27017:27017 -d mongo:4.2.23 --auth

参数说明:

  • --name mongo :给容器起一个名字。
  • -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
  • -d : 后台运行。
  • --auth:需要密码才能访问容器服务。

温馨提示:端口号可以换成其他的,毕竟27017是默认端口容器被攻击.
image.png
使用以下命令添加用户和设置密码,并且尝试连接。

docker exec -it mongo mongo admin

image.png
创建一个名为 admin,密码为 123456 的用户。

db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

image.png
使用上面创建的用户信息进行连接。

db.auth('admin', '123456')

image.png

5、使用数据库可视化工具连接

image.png

image.png

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
2天前
|
数据库 数据库管理 关系型数据库
|
2天前
|
数据库
生成数据库结构文档
生成数据库结构文档
|
3天前
|
负载均衡 关系型数据库 MySQL
关系型数据库的安装和配置数据库节点
关系型数据库的安装和配置数据库节点
13 3
|
3天前
|
存储 NoSQL 数据管理
【MongoDB 专栏】MongoDB 文档模型详解
【5月更文挑战第10天】MongoDB 是一种流行的 NoSQL 数据库,以其灵活的文档数据模型著称。文章介绍了文档的基本概念、结构及操作,包括插入、查询、更新和删除。文档特点是灵活且可扩展,适合存储不同结构的数据。优势在于简化数据建模、提升开发效率并适应动态数据。应用场景包括用户信息、日志记录和电商数据管理。但需注意数据一致性和文档大小对性能的影响。理解文档模型有助于高效利用 MongoDB。
【MongoDB 专栏】MongoDB 文档模型详解
|
3天前
|
存储 NoSQL 关系型数据库
【MongoDB 专栏】MongoDB 与传统关系型数据库的比较
【5月更文挑战第10天】本文对比了MongoDB与传统关系型数据库在数据模型、存储结构、扩展性、性能、事务支持、数据一致性和适用场景等方面的差异。MongoDB以其灵活的文档模型、优秀的扩展性和高性能在处理非结构化数据和高并发场景中脱颖而出,而关系型数据库则在事务处理和强一致性上更具优势。两者各有适用场景,选择应根据实际需求来定。随着技术发展,两者正相互融合,共同构建更丰富的数据库生态。
【MongoDB 专栏】MongoDB 与传统关系型数据库的比较
|
5天前
|
安全 测试技术 数据库
达梦数据库Windows安装教程:从准备到完成
达梦数据库Windows安装教程:从准备到完成
|
7天前
|
存储 NoSQL 关系型数据库
MongoDB非关系型数据库实战
【5月更文挑战第6天】MongoDB,流行的NoSQL数据库,以其灵活的数据模型和高性能备受青睐。本文介绍了MongoDB的基础,包括文档型数据库特性、安装配置、数据操作。通过电商订单管理的实战案例,展示了MongoDB在处理复杂数据结构和大规模数据时的优势,适用于电商、游戏、视频直播等场景。MongoDB的索引、全文搜索和地理空间功能进一步增强了其实用性。注意性能优化和扩展性以确保系统稳定性和可靠性。
|
9天前
|
SQL 数据库 Windows
sql数据库安装过程,SQL数据库的安装过
本文概述了安装SQL Server数据库的步骤:准备硬件和软件环境,运行安装程序,选择安装类型,接受许可协议,设定安装路径和组件,配置实例和服务账户,选择身份验证模式,配置其他设置,然后安装并完成。安装后需检查验证SQL Server是否正常工作。确保遵循步骤以顺利完成安装。
44 3
|
13天前
|
Java 关系型数据库 测试技术
Java代码一键生成数据库文档(案例详解)
Screw是一个自动化数据库文档生成工具,能根据数据库表结构快速生成简洁、多格式(HTML、Word、Markdown)的文档,支持MySQL、MariaDB等多数据库。它使用Freemarker模板,允许用户自定义样式。依赖包括HikariCP数据库连接池和对应JDBC驱动。通过在Java代码或Maven插件中配置,可方便生成文档。示例代码展示了如何在测试用例中使用Screw。文档效果依赖于数据库中的表和字段注释。
|
13天前
|
Java 关系型数据库 MySQL
springboot业务开发--springboot一键生成数据库文档
Screw是一个数据库文档生成工具,能自动化根据数据库表结构生成文档,减轻开发人员工作负担,支持MySQL、MariaDB、TiDB等多种数据库和HTML、Word、Markdown等格式。它依赖HikariCP数据库连接池和Freemarker模板引擎。通过在Spring Boot项目中添加相关依赖并配置,可以用代码或Maven插件方式生成文档。示例代码展示了如何在JUnit测试中使用Screw生成HTML文档。