努力挣扎的生活 努力挣扎的生活
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Dcoker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)

yangfk

瑟瑟发抖的小运维
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Dcoker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)
  • Mysql

  • PostgreSQL

  • Redis

  • MongoDB

    • MongoDB安装
      • 什么是MongoDB ?
      • 安装MongoDB
      • 基础操作
        • 连接数据库
        • 创建用户
        • 开启验证登录
        • 库操作
    • MongoDB副本集
    • MongoDB分片
    • MongoDB备份
  • ClickHouse

//
  • DBA
  • MongoDB
yangfk
2021-08-25

MongoDB安装

//

# 什么是MongoDB ?

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

# 安装MongoDB

官方社区版下载地址 (opens new window)

安装版本:3.4.24

系统:centos7

  • 下载安装配置
#下载包3.4.24
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.24.tgz
#https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.22.tgz

#重命名,创建目录
tar zxvf mongodb-linux-x86_64-3.4.24.tgz -C /opt
mv /opt/mongodb-linux-x86_64-3.4.24/ /opt/mongodb
mkdir /opt/mongodb/{db,logs}

#添加配置文件
cat >/opt/mongodb/bin/mongodb.conf<<EOF
dbpath=/opt/mongodb/db
logpath=/opt/mongodb/logs/mongodb.log
port=27017
fork=true
nohttpinterface=true
auth=false
EOF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  • 命令行启动

/opt/mongodb/bin/mongod --bind_ip localhost -f /opt/mongodb/bin/mongodb.conf

  • 添加systemd
#添加用户,授权
groupadd mongod
useradd -s /sbin/nologin -g mongod -M mongod
chown -R mongod:mongod /opt/mongodb

#添加systemd 启动文件
cat >/usr/lib/systemd/system/mongodb.service<<'EOF'
[Unit]
Description=mongodb database

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet --bind_ip_all -f /opt/mongodb/bin/mongodb.conf"
ExecStart=/opt/mongodb/bin/mongod $OPTIONS run
PIDFile=/opt/mongodb/logs/mongod.pid

[Install]
WantedBy=multi-user.target
EOF

#如果是通过systemd 启动需要注释fork
sed -i 's@fork=true@#fork=true@g' /opt/mongodb/bin/mongodb.conf

#版本4.2需要执行下面的注释
sed -i 's@nohttpinterface=true@#nohttpinterface=true@g' /opt/mongodb/bin/mongodb.conf


systemctl daemon-reload
systemctl enable mongodb.service
systemctl start mongodb.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

# 基础操作

# 连接数据库

1.本地连接

shell > mongo

2.指定IP端口

shell > mongo 192.168.40.82:27017

3.指定IP端口连接

shell > mongo 192.168.40.85:27017/admin

# 创建用户

role: "dbOwner"代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等当账号管理员和超级管理员,可以为自己的数据库创建用户了。

(坑)这时候一定,一定要切换到所在数据库上去创建用户,不然创建的用户还是属于admin。

如果是读写角色的话,权限设置为role: "readWrite"

use admin  
db.createUser({
  user: 'admin',  // 用户名
  pwd: '123456',  // 密码
  roles:[{
    role: 'root',  // 角色
    db: 'admin'  // 数据库
  }]
})


1
2
3
4
5
6
7
8
9
10
11

1.创建管理员用户

db.createUser({ user: "admin", pwd: "password", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

2.创建root用户

db.createUser({user: "root",pwd: "password", roles: [ { role: "root", db: "admin" } ]})

3.创建属于test库用户

use testdb db.createUser({user: "test",pwd: "testpassword",roles: [ { role: "dbOwner", db: "testdb" } ]})

# 开启验证登录

1.修改配置

#修改配置,auth为true
sed -i 's#auth=.*#auth=true#g' /opt/mongodb/bin/mongodb.conf
#重启
systemctl restart mongodb.service
1
2
3
4

2.登录及用户操作修改

#登录方式一:命令行
shell > mongo admin -u admin -p 123456 --host 127.0.0.1

#登录方式二:登录后,再验证
shell > mongo --host 127.0.0.1
db.auth('admin','123456')  // 密码认证


show users  // 查看当前库下的用户

db.dropUser('admin')  // 删除用户

db.updateUser('admin', {pwd: '654321'})  // 修改用户密码
1
2
3
4
5
6
7
8
9
10
11
12
13

3.删除用户

删除用户必须由账号管理员来删,所以,切换到admin角色

use admin
db.auth("admin","123456")

#删除单个用户
db.system.users.remove({user:"testadmin"})

#删除所有用户
db.system.users.remove({})
1
2
3
4
5
6
7
8

# 库操作

1.存在就切换到dbname库,如果数据库不存在,则创建数据库

use dbname

2.查看当前所在哪个库

db

3.查看所有库,如果数据库内没有数据,则不会显示

show dbs

4.删除库dbname

删除库之前,注意一定要先检查当前在哪个库

use dbname
db.dropDatabase()
1
2

5.插入数据

插入数据到dbname

use dbname
db.dbname.insert({"title":"MongoDB 初学"})
show dbs
1
2
3

6.查找数据

db.dbname.find()
db.dbname.find({"title":"MongoDB 初学"})
1
2

7.查看表数据行

db.dbname.count()

//
点击 -->> 给博主买咖啡 (opens new window)
上次更新: 2022/09/09, 08:55:46
Redis安装
MongoDB副本集

← Redis安装 MongoDB副本集→

最近更新
01
Pod探针
12-20
02
kubeadm证书替换
12-20
03
kubeadm安装k8s(版本1.26.0)
12-16
更多文章>
Theme by Vdoing | Copyright © 2019-2023 yangfk | 湘ICP备2021014415号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
//