Mongodb4.4安装与使用
MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能
最丰富,最像关系数据库的。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。它是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应
用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系型数据库的。它支持的数据结构
非常松散,会将数据存储为一个文档,数据结构由键值对(key=>value)组成,是类似于json的bson格式,字段值可以包含其它文档、数组和文档数组,因此可以存储比较复杂的数据类型
下载并解压:
cd /usr/local/src wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.4.tgz tar -zxvf mongodb-linux-x86_64-rhel70-4.4.4.tgz -C /usr/local mv /usr/local/mongodb-linux-x86_64-rhel70-4.4.4 /usr/local/mongodb
安装并配置:
cd /usr/local/mongodb/ mkdir data logs conf 创建mongo配置文件
vim conf/mongodb.conf
内容如下:
systemLog:
quiet: false
path: /usr/local/mongodb/logs/mongodb.log
logAppend: false
destination: file
processManagement:
fork: true
pidFilePath: /usr/local/mongodb/bin/mongodb.pid
net:
bindIp: 0.0.0.0
port: 27017
maxIncomingConnections: 65536
wireObjectCheck: true
storage:
dbPath: /usr/local/mongodb/data
journal:
enabled: true
operationProfiling:
slowOpThresholdMs: 100
mode: off
security:
authorization: enabled
配置内容解释:
sytemsLog:(系统日志,必须配置)
quiet: true
描述:"安静",此时mongod/mongos将会尝试减少日志的输出量。不建议在production环境下开启,否则将会导致跟踪错误比较困难。
path: logs/mongod.log
logAppend: false
描述:如果为true,当mongod/mongos重启后,将在现有日志的尾部继续添加日志。否则,将会备份当前日志文件,然后创建一个新的日志文件;默认为false。
destination: file
描述:日志输出目的地,可以指定为“ file”或者“syslog”,表述输出到日志文件,如果不指定,则会输出到标准输出中(standard output)。
processManagement:
fork: <true | false>
描述:是否以fork模式运行mongod/mongos进程,默认为false
pidFilePath:<路径>
描述:配合"fork:true"参数,将mongod/mongos进程ID写入指定的文件,如果不指定,将不会创建PID文件
net:
bindIp: <127.0.0.1>
描述:mongod/monogs进程绑定的IP,application通过此IP、port建立链接。可以绑定在任意网卡接口上,如果你的mongos/mongod只需要内网访问,可以绑定在内网IP(例如:192.168.1.100),如果需要外网访问,那么则绑定外网IP,如果此值为“0.0.0.0”,则绑定到所有接口即内网、外网IP均可以访问。(不建议)可以绑定都多个ip上,ip地址之间用“,”分割。
port: 27017
描述:mongod/mongos侦听端口,默认为27017;不过因为mongodb有2种典型的架构模式:replica set和sharding,如果开发者在一个节点上部署多个mongod实例,需要注意修改此端口以避免冲突。
maxIncomingConnections: 65536
描述:mongod/mongos进程允许的最大连接数,如果此值超过操作系统配置的连接数阀值,将不会生效(ulimit);默认值为65536。通常客户端将会使用连接池机制,可以有效的控制每个客户端的链接个数。
wireObjectCheck: true
描述:当客户端写入数据时,mongos/mongod是否检测数据的有效性(BSON),如果数据格式不良,此insert、update操作将会被拒绝;默认值为true
storage:
dbPath: db
描述:mongod进程存储数据目录,此配置仅对mongod进程有效。默认值为:/data/db
engine: mmapv1
描述:存储引擎类型,mongodb 3.0之后支持“mmapv1”、“wiredTiger”两种引擎,默认值为“mmapv1”;官方宣称wiredTiger引擎更加优秀
journal:
enabled: true
描述:是否开启journal日志持久存储,journal日志用来数据恢复,是mongod最基础的特性,通常用于故障恢复。64位系统默认为true,32位默认为false,建议开启,仅对mongod进程有效
operationProfiling:
slowOpThresholdMs: 100
描述:数据库profiler判定一个操作是“慢查询”的时间阀值,单位毫秒;mongod将会把慢查询记录到日志中,即使profiler被关闭。当profiler开启时,慢查询记录还会被写入“system.profile”这个系统级的collection中。请参看mongod profiler相关文档。默认值为100,此值只对mongod进程有效
mode: off
描述:数据库profiler级别,操作的性能信息将会被写入日志文件中,可选值:
1)off:关闭profiling
2)slowOp:on,只包含慢操作日志
3)all:on,记录所有操作
数据库profiling会影响性能,建议只在性能调试阶段开启。此参数仅对mongod有效
设置mongo为系统服务:
vim /etc/systemd/system/mongodb.service 内容:
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target [Service]
Type=forking
RuntimeDirectory=mongodb
RuntimeDirectoryMode=0751
PIDFile=/usr/local/mongodb/bin/mongodb.pid
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongodb.conf
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/conf/mongodb.conf
PrivateTmp=false [Install]
WantedBy=multi-user.target
服务命令:
systemctl start mongodb.service #启动服务 systemctl stop mongodb.service #停止服务 systemctl restart mongodb.service #重新启动服务 systemctl status mongodb.service #查看服务当前状态 systemctl enable mongodb.service #设置开机自启动 systemctl disable mongodb.service #停止开机自启动
注意点:
关闭 MongoDB 方法1.本文采用[root@Mike-Node1 /usr/local/mongodb/bin]# systemctl stop mongodb.service服务的方式关闭2.使用 mongod 命令关闭
[root@Mike-Node1 /usr/local/mongodb/bin]# mongod --shutdown --dbpath /usr/local/mongodb/data/
killing process with pid: 14447mongod 命令的 shutdown 选项能干净的关闭 MongoDB 服务 3.使用 kill 命令 mongo 服务进程
可以使用操作系统的 kill 命令,给 mongod 进程发送 SIGINT 或 SIGTERM 信号,即 "kill -2 PID," 或者 “kill -15 PID“
建议不要使用 ”kill -9 pid“,因为如果 MongoDB 运行在没开启日志(--journal)的情况下,可能会造成数据损失
将命令加入全局:
vim /etc/profile 最后一行新增:
export PATH=$PATH:/usr/local/mongodb/bin
客户端连接:
./mongo ip:port/库名 -u用户名 -p密码
如果出现非正常关闭服务,处理方案:
解决办法:
1)删除数据目录/usr/local/mongodb/data 下的 mongod.lock
[root@Mike-Node1 ~]# rm -rf /usr/local/mongodb/data/mongod.lock 2)修复mongodb
[root@Mike-Node1 ~]# /usr/local/mongodb/bin/mongod --logpath --dbpath /usr/local/mongodb/data --repair 3)删除/usr/local/mongodb/data/journal 下的 j._4 文件(或者将journal下的文件清空)
[root@Mike-Node1 ~]# rm -rf /usr/local/mongodb/data/journal/*j._4
4)然后再次启动 mongodb 就ok了
[root@Mike-Node1 ~]# systemctl start mongodb.service
创建用户及权限:
1.创建超级用户
创建root用户
use admin db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]}) user:用户名 pwd:密码 db:指定该用户的数据库,admin是用于权限控制的数据库,如果没有需要新建一个 roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选: Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system 具体角色的功能: Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
2.创建所有数据库管理用户
db.createUser({user:"userAdmin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
3.创建单个数据库用户
db.createUser({user:"dbUser",pwd:"123456",roles:[{role:"readWrite",db:"test"}]})
Mongodb4.4安装与使用的更多相关文章
- Linux_CentOS中Mongodb4.x 安装调试、远程管理、配置 mongodb 管理员密码
Mongodb4.x 安装 官方文档:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 1.配置 yum 源 1 ...
- MongoDB自学------(1)MongoDB4.0安装
一.环境 操作系统 安装包 安装方式 Ubuntu18.04 mongodb4.0 apt安装 Ubuntu18.04 mongodb4.0 docker安装 二.apt安装 sudo apt-key ...
- centos 7 mongodb4.0 安装配置
1.下载安装 cat <<EOF> /etc/yum.repos.d/mongodb-org-4.0.repo [mongodb-org-4.0]name=MongoDB Repos ...
- mongodb4.xxx 安装,和基本配置
.社区版 下载地址 ww.mongodb.com/download-center/community .配置环境变量 安装目录下的 bin 目录 ,C:\z_MongoDB\bin:配置到系统环境变量 ...
- mongodb4.0 安装
下载: wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.9.tgz 解压缩 tar -zxvf mongodb-linux ...
- Mongodb的入门(7)window安装mongodb4
Mongodb4: MongoDB CTO Eliot Horowitz 刚刚于2月16日凌晨在MongoDB西雅图大会上宣布,MongoDB将在4.0版本中正式推出多文档ACID事务支持 . “Mo ...
- Ubuntu20.04安装MongoDB
本教程描述了如何在Ubuntu20.04上安装MongoDB4.4 安装MongoDB Ubuntu 20.04默认存储库中不提供最新版本的MongoDB,因此需要在系统中添加官方的MongoDB存储 ...
- CentOS使用手册(三)
前言: 目录:暂时不写,因为有些实验,比如负载均衡,反向代理,配置ssl等实验来不及做.所以这篇随笔还需日后补充(排版以后慢慢调,现在该做平台分析系统了) Linux中Mongodb4.x安装调试.远 ...
- 6.MongoDB4.0在Windows环境的下载、安装、配置
简单来说:MongoDB4.0在Windows下已经不需要再次配置db文件夹之类操作,安装完成直接进行连接测试即可,以下是具体过程(此前网上很多的教程都已经过时) 1.下载:https://www.m ...
- 新手小白Linux(Centos6.5)部署java web项目(mongodb4.0.2安装及相关操作)
红帽企业或CentOS的Linux上安装MongoDB的社区版: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat ...
随机推荐
- Playwright 源码 BrowserType
playwright-java 的 Browser.BrowserContext.Page 挺好理解的,唯独这厮,就有一丢丢 -- package com.microsoft.playwright; ...
- frp_v0.37.1内网穿透,内网服务公网用不求人
前言: 公司内网无法访问,出差又需要用到公司内网进行办公,苦恼了好一阵.这时候想到了内网穿透,这就不得不提到几年前被安利的frp,一看GitHub竟然已经5年了,网上估计大把教程了. 那么什么是frp ...
- ASP.NET Core Library – MailKit SMTP Client
前言 以前写的 SMTP Client 相关文章: Asp.net core 学习笔记 ( Smtp and Razor template 电子邮件和 Razor 模板 ) ASP.NET Email ...
- MaterialDesignInXamlToolkit 5.0 发布
5.0.0 发布 这是一个重大版本更新,又许多破坏性变化 升级到5.0.0版本,请参考:https://www.cnblogs.com/sesametech-dotnet/p/18028565 变化 ...
- 关于AutoCAD反复弹窗Nonvalid Software Detected的解决办法
事件起因: 客户安装的 CAD 2020 频繁弹窗Nonvalid Software Detected,报错内容:YOUR ACCESS IS NOW BLOCKED 解决办法: 在文件资源管理器 ...
- USB TCPM
USB TCPM(Type-C Port Manager)的主要作用是管理 USB Type-C 端口的连接和电源传输协议(USB Power Delivery, PD),确保设备正确识别.协商和切换 ...
- 墨天轮最受DBA欢迎的数据库技术文档-容灾备份篇
在大家的支持与认可下,墨天轮编辑部继续为大家整理出了[墨天轮最受欢迎的技术文档]系列第二篇--容灾备份篇,希望能够帮助到大家. 作为一名数据库管理员,最怕数据库中心突然失去服务能力.影响业务,而不论是 ...
- excel导⼊功能的实现流程简要描述⼀下?
当时公司的场景⼤概⼀个excel⽂件⾥就⼏⼗条数据,量⽐较少,和后端商量之后制定了前端主导的⽅ 案,解析的过程放到了浏览器端做,当时是参考了⼀下vue-admin中的现成的⽅案 ⼤概流程是这样的,⼈事 ...
- Vue 项目优化解决方案 有哪些 ?
1. 打包的时候 , 通过插件把css代码单独抽离出来使用 link 引入 2. 打包的时候 , 通过webpack内置插件optimization 把 公共的js代码抽离出来 ps:打包之后,代码 ...
- 云原生周刊:Harbor v2.11 版本发布 | 2024.6.17
开源项目推荐 Descheduler Descheduler 是一个工具,可用于优化 Kubernetes 集群中 Pod 的部署位置.它可以找到可以移动的 Pod,并将其驱逐,让默认调度器将它们重新 ...