1. docker 启动

拉取镜像 docker pull mongo:latest

指定目录启动  docker run -d -p 27017:27017 --name mongo \
-v /home/mongodb/data/mongodb:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admindev123$%^ mongo:latest

2. 安装包安装

2.1官方下载地址 https://www.mongodb.com/download-center/community

上传服务器解压   tar -zxvf ************.tgz

移到到指定目录,自己看情况   /usr/local/mongodb

2.2 配置conf与目录

cd /usr/local/mongodb

创建db目录和日志文件

mkdir  /data/db   /logs

touch  /logs/mongodb.log

创建mongodb.conf 文件

vi mongodb.conf

#端口号
port=27017
#db目录
dbpath=/usr/local/mongodb/data/db
#日志目录
logpath=//usr/local/mongodb/logs/mongodb.log
#后台
fork=true
#日志输出
logappend=true
#允许远程IP连接
bind_ip=0.0.0.0

2.3 启动

  ./bin/mongod --config mongodb.conf

连接

./bin/mongo

测试一下

2.4 配置开机自启动

cd /lib/systemd/system

vi mongodb.service

  [Unit]
  Description=mongodb
  After=network.target remote-fs.target nss-lookup.target

  [Service]
  Type=forking
  ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
  ExecReload=/bin/kill -s HUP $MAINPID
  ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/mongodb.conf
  PrivateTmp=true

  [Install]
  WantedBy=multi-user.target

然后设置mongodb.service权限

chmod +x mongodb.service

#启动服务

systemctl start mongodb.service

#停止服务

systemctl stop mongodb.service

#添加开机自启动

systemctl enable mongodb.service

#重启服务

systemctl restart mongodb.service

2.5 配置环境变量

  1、直接用export命令:
     export PATH=$PATH:/usr/local/mongodb/bin

2、修改profile文件:
     cat >>/etc/profile<<"EOF"
     export PATH="$PATH:/usr/local/mongodb/bin"

EOF

#刷新profile文件:

source  /etc/profile

3、 修改.bashrc文件:

cat >>/root/.bashrc<<"EOF"
     export PATH="$PATH:/usr/local/mongodb/bin"

EOF

上述三步依次执行完毕,环境变量配置完成!!!!

重启服务器,输入mongo 回车就有了。。。。。

3 创建用户

#进入mongoDb容器,创建管理员
docker exec -it mongoDb bash
#进入mongoDb
mongo
> use admin
switched to db admin
> db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]});
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
#出现创建成功提示就对了,退出管理员
> exit;
#用刚创建的管理用户登录在创建个普通用户
mongo --port 27017 -u admin -p admin --authenticationDatabase admin
> use test
switched to db test
> db.createUser({user:"tester",pwd:"tester",roles:[{role:"readWrite",db:"test"}]});
Successfully added user: {
"user" : "tester",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}
> exit

使用新建的test库,就需要在新建的test库下面创建一个用户,amdin也不行,admin只能在原始存在的库可以
比如新建一个test
需要在test下面创建一个用户

db.createUser(
{
user: "root",
pwd: "admindev123$%^",
roles: ["readWrite"]
}
)

返回1显示1则成功

 mongoDb用户角色权限说明

  • 数据库用户角色 read、readWrite
  • 数据库管理角色 dbAdmin、dbOwner、userAdmin
  • 集群管理角色 clusterAdmin、clusterManager、clusterMonitor、 hostManager
  • 备份恢复角色 backup、restore
  • 所有数据库角色 readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  • 超级用户角色 root
  • 内部角色 __system

角色说明

  • Read 允许用户读取指定数据库
  • readWrite 允许用户读写指定数据库
  • dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
  • userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
  • clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
  • readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
  • readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
  • userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
  • dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
  • root 只在admin数据库中可用。超级账号,超级权限

删除用户:

db.dropUser(<user_name>)    删除某个用户,接受字符串参数

示例:db.dropUser(“admin”)

db.dropAllUser()             删除当前库的所有用户

MongoDB学习 - 安装部署的更多相关文章

  1. MongoDB学习--安装与管理

    一.简介 MongoDB是一种强大.灵活,且易于扩展的通用型数据库.他能扩展出非常多的功能.如二级索引(secondary index).范围查询(range query).排序.聚合(aggrega ...

  2. mongodb的安装部署-备份

    1.安装部署 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.10.tgz tar -zxf mongodb-linux- ...

  3. MongoDB学习-安装流程

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型. ...

  4. 【MongoDB学习-安装流程】

    MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型. ...

  5. twitter storm学习 - 安装部署问题汇总

    已经碰到的或者将来碰到的关于安装部署方面的问题以及解决方法,先挖个坑 1.提交的topology在admin界面上看emitted始终都是0,查看日志发现有如下错误: worker [ERROR] E ...

  6. MongoDB之安装部署

    一.安装MongoDB 在安装MongoDB之前,应该先把MongoDB官方网站上下载下来,下载的地址如下: https://www.mongodb.com/download-center 下载完毕之 ...

  7. Hadoop学习---安装部署

    hadoop框架 Hadoop使用主/从(Master/Slave)架构,主要角色有NameNode,DataNode,secondary NameNode,JobTracker,TaskTracke ...

  8. Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  9. Ubuntu16.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

随机推荐

  1. jQuery - 的几种删除方法,还有他们的区别

    1.empty() 清空节点,它能清空元素中的所有后代节点,不能删除自己本身这个节点 2.remove() 该节点与该节点所包含的所有后代节点将同时被删除,提供传递一个筛选的表达式,删除指定合集中的元 ...

  2. springMVC WebApplicationInitializer 替代web.xml 配置Servlet 之原理

    Servlet 3.0之前 ,xml  配置 在过去搭建spring + springMCV ,首先第一步要做的是什么 ,就是要配置web.xml 文件 ,把springMVC 中的Servlet 加 ...

  3. MicroK8S 安装 修改IP 设置镜像加速 升级 卸载等

    系统要求: Ubuntu 20.04 LTS, 18.04 LTS or 16.04 LTS或其他支持snapd的操作系统 内存:4G+ 硬盘:20G+ 官方文档 安装microk8s sudo sn ...

  4. QPS和TPS的区别于理解

    TPS: (每秒事务处理量(TransactionPerSecond)) 一个表达系统处理能力的性能指标,每秒处理的消息数(Transaction Per Second),每秒事务处理量 - 性能测试 ...

  5. GIT最基本使用

    带'*':必须操作 不带'*':可能需要而且经常用的 常见步骤为下: *1.克隆项目:有两种不同类型的网址(https/ssh) git clone [url] *2.初始化本地仓库 git init ...

  6. presto官网阅读记录: Functions and Operators 部分

    官网Functions and Operators部分 版本:0.266 目录 官网Functions and Operators部分 1 Comparison Functions and Opera ...

  7. 多个工作簿拆分(Excel代码集团)

    一个文件夹里有N个工作簿,每个工作簿中包括N个工作表,将各个工作表拆分成工作簿,命名为每个工作簿里第一个工作表的A列和B列. 工作簿.工作表数量不定,表内内容不限,拆分后保存于当前文件夹下的" ...

  8. CF221A Little Elephant and Function 题解

    Content 小象有一个序列 \(a_1,a_2,a_3,...,a_n\) (其中 \(a_i=i\))和一个递归函数 \(f(x)\).\(f(x)\) 的操作如下: 初始时,\(x=n\). ...

  9. CF1076B Divisor Subtraction 题解

    Content 给定一个数 \(n\),执行如下操作: 如果 \(n=0\) 结束操作. 找到 \(n\) 的最小质因子 \(d\). \(n\leftarrow n-d\) 并跳到操作 \(1\). ...

  10. Java面向对象~类和对象&方法,类方法

    面向对象 概念:     1.同一类事物的抽象描述,不是具体的    2.类和对象的关系:        类 是抽象的.        对象 是具体的.    3.对象的体征,称为"属性&q ...