MONGDB安装与使用

安装

1 下载mongodb安装包

网址:https://www.mongodb.com/try/download/community

官网上可以下载多个系统的mongdb安装包,windows,centos,ubuntu等等,如图

MONGDB安装与使用_java

2 安装MONGDB软件

解压mongdb 压缩包

1tar xvf mongodb-linux-x86_64-rhel80-4.4.4.tgz

将解压生成的目录 改名为mongodb ,并移动到 /usr/local下

1mv mongodb-linux-x86_64-rhel80-4.4.4.tgz mongodb
2mv mongodb /usr/local/

进入mongodb目录下

  • 创建data目录

  • data目录下创建db目录

  • data目录下创建log目录

1mkdir data
2cd data
3mkdir db
4mkdir log

回到mongo目录下,创建mongodb的配置文件,mongodb.conf,之后启动需要用到

需要在mongodb.conf下配置

  • dbpath -- 数据库的数据存放位置

  • logpath -- 日志文件存放位置

  • logappend -- 日志是否以追加的方式

  • port -- 端口号

  • auth -- 是否需要认证

  • fork -- 是否以守护进程的方式运行

  • bind -- 限制远程访问的ip,不做限制的话可以写0.0.0.0

1dbpath=/usr/local/mongodb/data/db
2logpath=/usr/local/mongodb/data/log/mongodb.log
3logappend=true
4port=27017
5auth=true
6fork=true
7bind_ip=0.0.0.0

将mongodb可执行程序写入到/etc/profile 中,开机时会自动读取这个文件

1export MONGODB_HOME=/usr/local/mongodb
2export PATH=$PATH:$MONGODB_HOME/bin

启动mongodb服务

1mongod -f /usr/local/mongodb/mongodb.conf

关于防火墙

1、可以直接关闭系统的防火墙

2、防火墙打开端口27017端口,以便于客户端进行连接mongdb

3 关于MONGDB的状态查看

查询mongodb状态

1ps aux |grep mongodb

查看端口

1netstat -antp |grep 27017

关闭mongodb

1、通过kill 命令杀掉 PID即可

2、mongod -f /usr/local/mongodb/mongodb.conf --shutdown

4 mongdb设置角色、用户名、密码

  • /usr/local/mongodb/mongodb.conf 的配置如下,我们可以auth置为false ,auth字段开启,是开启认证,关闭则是关闭认证

MONGDB安装与使用_java_02

  • mongdb有多个角色

角色
用户read、readWrite
管理员dbAdmin、dbOwner、userAdmin
集群管理员clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复权限backup、restore
所有数据库权限

readAnyDatabas

ereadWriteAnyDatabase

userAdminAnyDatabase

dbAdminAnyDatabase

超级用户root
内部角色__system

4.1 选择数据库

1use xxx

4.2 创建管理员账号

1db.createUser({user:'admin2',pwd:'123456',roles:[{role:'readWriteAnyDatabase',db:'admin'}]})

执行后,如下效果

1Successfully added user: {
2        "user" : "admin2",
3        "roles" : [
4                {
5                        "role" : "readWriteAnyDatabase",
6                        "db" : "admin"
7                }
8        ]
9}

接下来具体的mongdb数据库操作,可以看菜鸟教程学习一波,很快就会用了

https://www.runoob.com/mongodb/mongodb-create-collection.html

MONGDB安装与使用_java_03

5 mongodb设置开机启动

  • 添加一个mongdb的服务

    1vim /etc/rc.d/init.d/mongod
  • 编写这个服务的具体实现

 1start() {
2    /usr/local/mongodb/bin/mongod  --config /usr/local/mongodb/mongodb.conf
3}
4
5stop() {
6    /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf --shutdown
7}
8case "$1" in
9    start)
10     start
11     ;;
12
13    stop)
14     stop
15     ;;
16
17    restart)
18     stop
19     start
20     ;;
21      *)
22 echo  $"details: $0 {start|stop|restart}"
23 exit 1
24esac
  • 对这个服务的可执行程序添加执行权限

1chmod +x /etc/rc.d/init.d/mongod
  • 启动这个服务

1service mongod start
  • 关闭这个服务

1service mongod stop
  • 重启这个服务

1service mongod restart

6 可视化工具

介绍一个可视化工具,非常好用,比nosql这个工具好用多了

Robo 3T 1.3.1 下载链接如下

https://robomongo.org/download

软件操作比较简单,大家下载下来后,熟悉一下界面,就会使用了。

MONGDB安装与使用_java_04

GOLANG简单操作mongdb

mongdb的驱动大家使用比较多的有2种:

  • mongdb 官方的库, go.mongodb.org/mongo-driver/mongo

  • 第三方库 gopkg.in/mgo.v2

    地址为:http://labix.org/mgo

我们选用官方的驱动库来介绍mongdb简单的增,删,改,查

 1type Test struct {
2    Name       string `bson:"name"`
3    Age         int    `bson:"age"`
4    CreateTime int64  `bson:"createTime"`
5    UpdateTime int64  `bson:"updateTime"`
6}
7
8
9func initMongdb() error {
10    // 1 建立mongodb连接
11    // 填写自己的mongdb地址,端口默认是 27017
12    clientOptions := options.Client().ApplyURI("mongodb://admin:123456@xxxx:27017/admin?authMechanism=SCRAM-SHA-1")
13    mclient, err := mongo.Connect(context.TODO(), clientOptions)
14    if err != nil {
15        mlog.Error(err)
16        return err
17    }
18    // 2, 选择数据库my_db
19    database := mclient.Database("admin")
20    // 3, 选择表my_collection
21    collection := mgMongoDatabase.Collection("deviceToken")
22
23    mlog.Info("connect mongdb successfully")
24
25
26    // 插入数据
27    record := &Test{
28        Name:        "小魔童",
29        CreateTime: time.Now().Unix(),
30        UpdateTime: time.Now().Unix(),
31    }
32    result, err := collection.InsertOne(context.TODO(), record)
33    if err != nil {
34        mlog.Error(err)
35        return err
36    }
37    mlog.Info(result)
38
39    // 更新数据
40   // if err := UpdateData(bson.M{"name": "xxxx"}, bson.D{{"$set", bson.M{"age": 15}}}); err != nil {
41    //      mlog.Error(err)
42    //      return
43    //  }
44
45
46    //查询单个记录
47    //data := &DeviceToken{}
48    //err = collection.FindOne(context.TODO(),bson.M{}).Decode(data)
49    //mlog.Info(data)
50
51    //查询所有记录
52    data := []DeviceToken{}
53    cursor, err := collection.Find(context.TODO(), bson.M{})
54    cursor.All(context.TODO(), &data)
55    mlog.Info(data)
56
57
58    // 删除一条记录
59    //res ,err := mgMongoCollection.DeleteOne(context.TODO(),bson.M{"name":"xxxx"})
60    //if err != nil{
61    //  mlog.Warn(err)
62    //}
63
64    return nil
65}

学习mongdb 可以看看这个网站,当前这个完整还不支持 golang操作mongdb

以上为本期全部内容,如有疑问可以在评论区或后台提出你的疑问,我们一起交流,一起成长。

好家伙要是文章对你还有点作用的话,请帮忙点个关注,分享到你的朋友圈,分享技术,分享生活,分享知识,分享快乐

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。