一、Mongodb安装和配置
简介
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品。
Mongodb安装
下面安装的是mongodb-3.6.7版本,linux系统使用的是Centos7
1、安装包下载
进入mongodb官网下载地址https://www.mongodb.com/,点击右上角 Try Free 按钮进入下载页下载需要的安装包。
版本说明:
- 稳定版本:previous release
- 最新版本:current release
- 开发版本(不建议使用):development release
下载说明:
- windows版本的下载:直接下载MIS的安装包,下载后点击即可安装。
- 对于linux版本,下面使用的是在Centos7上安装,因此选择的是
Linux 64-bit legacy x64
版本。
2、 windows 上安装mongodb
windows版本的下载好后直接安装就可以了,在安装的时候如果需要更改安装路径(建议自己重新选个安装路径)记得选自定义安装。
我们本地开发只需要安装mongodb server就可以了,在选择的时候需要注意,如果安装路径选择没有出现先点击下一步再返回就出现了,在最后确认安装的时候,下面有个MongoDB的工具,记得去掉勾选,那个工具不是太好用,建议使用其他的如Robo 3T。同时可以不用让其安装为服务,这样我们可以使用下面脚本来启动,关闭也很方便。
- 编写配置文件
安装好后,在安装目录下的bin目录中创建一个mongodb的配置文件 mongodb.conf,并在里面写入如下配置。(注意里面的路径请写自己的,同时记得提前将你写的文件夹创建好,否则会启动失败)
# 设置数据文件的存放目录
dbpath = D:\devtools\MongoDB\data
# 设置数据文件的存放目录
logpath = D:\devtools\MongoDB\data\logs\mongodb.log
# 设置端口号
port = 27017
# 设置为以守护进程的方式运行,即在后台运行
#fork = true
# 关闭http接口,默认关闭27018端口访问
#httpinterface = true
#权限启用验证
auth = false
#绑定IP,使其可以外网访问
#bind_ip = 0.0.0.0
- 创建启动脚本
在安装目录的bin目录中创建一个txt文本文件,在里面写入如下脚本
@echo off
title MongoDB服务
echo ########################################
echo # MongoDB服务启动成功...
echo #
for /f "tokens=4" %%a in ('route print^|findstr 0.0.0.0.*0.0.0.0') do (
set IP=%%a
)
echo # IP: %IP%
echo # 注意:关闭当前窗口即可停止MongoDB服务
echo ########################################
color 02
echo.
mongod -f mongodb.conf
color 04
echo.
echo ########################################
echo # MongoDB服务启动失败...
echo #
echo # 请查看日志文件中的错误提示
echo ########################################
pause
或者直接写如下脚本:
mongod -f mongodb.conf
之后将文件后缀改为bat;现在点击运行该文件就可以启动mongodb数据库了
脚本说明:其实只需要
mongod -f mongodb.conf
这句命令就可以了,后面这个‘mongodb.conf’就是刚才创建的配置文件
3、 Centos7上安装mongodb
安装包解压
tar -zxvf mongodb-linux-x86_64-3.6.7.tgz
重新命名,并将其移动到/home/soft/mongodb/mongodb-3.6.7目录下,此目录为自定义的。
mv mongodb-linux-x86_64-3.6.7 /home/soft/mongodb/mongodb-3.6.7
- 创建日志和数据存放文件夹
在/home/soft/mongodb/mongodb-3.6.7目录下创建一个名为logs的文件夹和data/db的数据存放文件夹
mkdir logs
mkdir -p data/db
- 编写配置文件
进入/home/soft/mongodb/mongodb-3.6.7目录下的bin目录,在里面创建一个名为mongodb.conf的文件
#数据文件存放目录
dbpath = /home/soft/mongodb/mongodb-3.6.7/data/db
#日志文件存放目录
logpath = /home/soft/mongodb/mongodb-3.6.7/logs/mongodb.log
#端口
port = 27017
#以守护进程的方式启用,即后台运行;默认false
fork = true
# 关闭web管理访问,默认关闭27018端口访问,这个是在prot端口上加1000
#httpinterface = true
#是否开启权限验证
auth = true
#绑定ip,让其能够通过外网访问, 0.0.0.0代表所有
bind_ip = 0.0.0.0
- 编写启动和停止脚本
在mongodb的安装目录下的bin目录下执行如下操作
创建启动脚本
vi start.sh
在脚本文件中写入如下内容:
./mongod -f mongodb.conf
创建停止脚本
vi stop.sh
在脚本文件中写入如下内容:
./mongod -f ./mongodb.conf --shutdown
注意:需要开启外网访问时,如果你使用的是阿里云的或腾讯云的服务器,且开启了安全组功能,那么你还需要在安全组模块中将你设置的端口开放。
4、 设置管理账号
4.1 先将配置mongodb.conf配置文件中的fork参数设为false,auth的设置为false; 然后启动mongo服务。
使用脚本启动:
./start.sh
4.2 让在另外一个管理窗口连接mongo
./mongo
4.3 创建用户
a. 添加超管用户(可以添加、更新、删除用户,以及数据库授权)
use admin
db.createUser(
{
user:"userAdmin",
pwd:"123456",
roles:[{
role:"userAdminAnyDatabase",
db:"admin"
}
]
}
);
退出登陆
quit
修改配置文件,将auth的设置为true,开启权限验证。停止mongo服务,重新启动。再次登陆。
b. 添加普通用户(为其他数据库)
#使用demo数据库
use demo
#添加用户
db.createUser(
{
user:"demo",
pwd: "123456",
roles: [{ role: "readWrite", db: "demo"}]
}
)
此时会报权限认证的错误,使用如下命令进行权限认证
db.auth('userAdmin', '123456')
之后再次执行添加用户操作。
c. 添加超管用户root
use admin
db.createUser(
{
user:"root",
pwd:"123456",
roles:[{
role:"root",
db:"admin"
}
]
}
);
其他命令
#进入admin数据库
use admin
#进行权限认证
db.auth('userAdmin', '123456')
#查询所有用户
db.system.users.find()
#更新用户
db.updateUser('demo',{user:'demo',pwd:'123456',roles:[{role:'read',db:'demo'}]})
#删除用户
db.dropUser('demo')
#创建数据库
use 数据库名
#显示已有数据库
show dbs
4.4 MongoDB数据库角色
内建的角色
名称 | 说明 |
---|---|
数据库用户角色 | read、readWrite |
数据库管理角色 | dbAdmin、dbOwner、userAdmin |
集群管理角色 | clusterAdmin、clusterManager |
备份恢复角色 | backup、restore |
所有数据库角色 | readAnyDatabase、readWriteAnyDatabase |
超级用户角色 | root (这里还有几个角色间接或直接提供了系统超级用户的访问[dbOwner 、userAdmin、userAdminAnyDatabase]) |
内部角色 | __system |
角色说明:
名称 | 说明 |
---|---|
Read | 允许用户读取指定数据库 |
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
userAdmin | 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 |
clusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 |
readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读权限 |
readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 |
userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 |
root | 只在admin数据库中可用。超级账号,超级权限 |
5、下载图形化管理工具
这里推荐使用: Robo3T
, 官网地址:https://robomongo.org;官网上有Robo 3T(免费的) 和Studio 3T(功能更全面,高级功能收费;可以免费体验几天,到期后重新安装就又可以用了,导入导出数据时很方便);个人感觉Robo 3T的操作界面更清新些。
一、Mongodb安装和配置的更多相关文章
- Mongodb安装和配置
Mongodb之安装配置 安装 Mongodb的下载地址为Mongodb官网.下载时.你能够选择是安装包或者是压缩包. 下载完毕后.双击安装包并安装. 安装完毕后.你能够在安装文件夹看到下图中所见的文 ...
- MongoDB 安装与配置
MongoDB下载 官方下载链接:https://www.mongodb.com/download-center/community MongoDB安装 简单,按提示安装即可.安装方式: 1. Com ...
- window下mongodb安装和配置
mongodb安装和配置 1.下载:https://www.mongodb.com 2.解压到盘的根目录下,本人解压到D盘根目录 3.在软件根目录下新建一个文件夹data 4.再新建两个文件夹db.l ...
- MongoDB安装与配置
参考文档:MongoDB官方文档 版本:3.6.4 从版本3.6开始,MongoDB需要Windows Server 2008 R2,Windows 7或更高版本. 第一步,在下载中心下载最新版本的M ...
- 【window】mongodb安装和配置
最近要独立开发vue+mongodb+node的小项目,项目不大,但之前没了解过mongodb还是蛮不容易的,因为以前用MySQL的时候都是用的集成化的工具,完全不用写命令去启动,用mogodb首先需 ...
- 【一】mongodb安装及配置
一.mongodb安装 1.下载并解压 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.0.tgz tar ...
- Windows下Mongodb安装及配置
安装文件:MongoDB-win32-x86_64-2008plus-ssl-3.2.6-signed.msi 电脑配置:win7 64位 mongodb的安装很简单,设置好安装路径后,一直Next直 ...
- Windows下Mongodb安装及配置(转载)
转载(https://blog.csdn.net/liang377122210/article/details/79062681) MongoDB的安装很简单,设置好安装路径后,一直Next直到安装结 ...
- mongodb安装和配置,遇到问题和解决方法
自己不知道怎么的,心血来潮想重新来安装和配置一下mongodb,之前自己也是按照别人的来整的,印象不深刻.第二遍安装配置遇到很多问题. 弄了两个多小时,期间遇到很多问题: 遇到的主要问题 1.拒绝访问 ...
- Linux下MongoDB安装和配置(二)
1. 下载MongoDB 下载地址:https://www.mongodb.com/download-center/community 这里选择的是:mongodb-linux-x86_64-4.0. ...
随机推荐
- Java带有运算符的字符串转换为Long型
由于项目需要在配置文件中配置一个刷新时间,但是配置文件中取出来来的数据肯定是字符串,然后要将该带有运算符的字符串转换为Long型.具体代码如下: 配置文件system.properties中: ref ...
- 【转】推荐给初级Java程序员的3本进阶书
ImportNew 注: 原作者在这篇文章中介绍3本不错的技术书籍.作者认为这些书籍对新手或者学生而言尤其有帮助.通过一些基础性的教程入门后,我们可以使用Java做基础性的编程.然而,当我们需要从初级 ...
- C++生成dll以及调用(函数)和类
C++新手,方法可能有很多,此方法仅仅是自己实验并可行,详细步骤如下: 生成dll文件和lib文件: (1) 新建项目-windows桌面向导,选择动态链接.dll以及空项目: (2)复制代码(头文件 ...
- 关于java php go 中AES加解密秘钥长度问题
今天心血来朝,想用go把php中的一个小功能重写一下,但在解密aes加密的数据时碰到了个坑! php的mcrypt拓展(貌似php7.1版本以上不支持了)提供了aes的加解密: 而且php aes 的 ...
- Java 设置Word页边距、页面大小、页面方向、页面边框
本文将通过Java示例介绍如何设置Word页边距(包括上.下.左.右).页面大小(可设置Letter/A3/A4/A5/A6/B4/B5/B6/Envelop DL/Half Letter/Lette ...
- cogs 1963. [HAOI 2015] 树上操作 树链剖分+线段树
1963. [HAOI 2015] 树上操作 ★★★☆ 输入文件:haoi2015_t2.in 输出文件:haoi2015_t2.out 简单对比时间限制:1 s 内存限制:256 M ...
- 第三篇python用户登录程序实现
需求: 1.通过注册输入用户名和密码 2.能够验证用户名和密码是否正确 3.限制输入一定错误次数后退出程序 4.利用格式化输出方式输出信息 分析: 使用username=input()和passwor ...
- JAVA高级架构师基础功:Spring中AOP的两种代理方式:动态代理和CGLIB详解
在spring框架中使用了两种代理方式: 1.JDK自带的动态代理. 2.Spring框架自己提供的CGLIB的方式. 这两种也是Spring框架核心AOP的基础. 在详细讲解上述提到的动态代理和CG ...
- kindeditor富文本编译器
一.网址 kindeditor.net/about.php 二.编辑器的使用,看官方文档 三.常用初始化参数 1.resizeType2或1或0,2时可以拖动改变宽度和高度,1时只能改变高度,0时不能 ...
- 客户端TNSPING通 连接出现ORA-12514错误
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务,这是一个经常遇到的问题,可以按照以下步骤一步步解决 1.使用tnsping检测 tnsping可判断出以下两点(1)判断网络 ...