前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MONGDB安装与使用

MONGDB安装与使用

作者头像
阿兵云原生
发布2023-02-16 10:33:44
4810
发布2023-02-16 10:33:44
举报
文章被收录于专栏:golang云原生new

MONGDB安装与使用

安装

1 下载mongodb安装包

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

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

2 安装MONGDB软件

解压mongdb 压缩包
代码语言:javascript
复制
tar xvf mongodb-linux-x86_64-rhel80-4.4.4.tgz
将解压生成的目录 改名为mongodb ,并移动到 /usr/local下
代码语言:javascript
复制
mv mongodb-linux-x86_64-rhel80-4.4.4.tgz mongodb
mv mongodb /usr/local/
进入mongodb目录下
  • 创建data目录
  • data目录下创建db目录
  • data目录下创建log目录
代码语言:javascript
复制
mkdir data
cd data
mkdir db
mkdir log
回到mongo目录下,创建mongodb的配置文件,mongodb.conf,之后启动需要用到

需要在mongodb.conf下配置

  • dbpath -- 数据库的数据存放位置
  • logpath -- 日志文件存放位置
  • logappend -- 日志是否以追加的方式
  • port -- 端口号
  • auth -- 是否需要认证
  • fork -- 是否以守护进程的方式运行
  • bind -- 限制远程访问的ip,不做限制的话可以写0.0.0.0
代码语言:javascript
复制
dbpath=/usr/local/mongodb/data/db
logpath=/usr/local/mongodb/data/log/mongodb.log
logappend=true
port=27017
auth=true
fork=true
bind_ip=0.0.0.0
将mongodb可执行程序写入到/etc/profile 中,开机时会自动读取这个文件
代码语言:javascript
复制
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
启动mongodb服务
代码语言:javascript
复制
mongod -f /usr/local/mongodb/mongodb.conf
关于防火墙

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

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

3 关于MONGDB的状态查看

查询mongodb状态
代码语言:javascript
复制
ps aux |grep mongodb
查看端口
代码语言:javascript
复制
netstat -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有多个角色

角色

用户

read、readWrite

管理员

dbAdmin、dbOwner、userAdmin

集群管理员

clusterAdmin、clusterManager、clusterMonitor、hostManager

备份恢复权限

backup、restore

所有数据库权限

readAnyDatabasereadWriteAnyDatabaseuserAdminAnyDatabasedbAdminAnyDatabase

超级用户

root

内部角色

__system

4.1 选择数据库
代码语言:javascript
复制
use xxx
4.2 创建管理员账号
代码语言:javascript
复制
db.createUser({user:'admin2',pwd:'123456',roles:[{role:'readWriteAnyDatabase',db:'admin'}]})

执行后,如下效果

代码语言:javascript
复制
Successfully added user: {
        "user" : "admin2",
        "roles" : [
                {
                        "role" : "readWriteAnyDatabase",
                        "db" : "admin"
                }
        ]
}

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

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

5 mongodb设置开机启动

添加一个mongdb的服务

代码语言:javascript
复制
vim /etc/rc.d/init.d/mongod

编写这个服务的具体实现

代码语言:javascript
复制
start() {
    /usr/local/mongodb/bin/mongod  --config /usr/local/mongodb/mongodb.conf
}

stop() {
    /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf --shutdown
}
case "$1" in
    start)
     start
     ;;

    stop)
     stop
     ;;

    restart)
     stop
     start
     ;;
      *)
 echo  $"details: $0 {start|stop|restart}"
 exit 1
esac
  • 对这个服务的可执行程序添加执行权限
代码语言:javascript
复制
chmod +x /etc/rc.d/init.d/mongod
  • 启动这个服务
代码语言:javascript
复制
service mongod start
  • 关闭这个服务
代码语言:javascript
复制
service mongod stop
  • 重启这个服务
代码语言:javascript
复制
service mongod restart

6 可视化工具

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

Robo 3T 1.3.1 下载链接如下

https://robomongo.org/download

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

GOLANG简单操作mongdb

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

  • mongdb 官方的库, go.mongodb.org/mongo-driver/mongo
  • 第三方库 gopkg.in/mgo.v2 地址为:http://labix.org/mgo

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

代码语言:javascript
复制
type Test struct {
    Name       string `bson:"name"`
    Age         int    `bson:"age"`
    CreateTime int64  `bson:"createTime"`
    UpdateTime int64  `bson:"updateTime"`
}


func initMongdb() error {
    // 1 建立mongodb连接
    // 填写自己的mongdb地址,端口默认是 27017
    clientOptions := options.Client().ApplyURI("mongodb://admin:123456@xxxx:27017/admin?authMechanism=SCRAM-SHA-1")
    mclient, err := mongo.Connect(context.TODO(), clientOptions)
    if err != nil {
        mlog.Error(err)
        return err
    }
    // 2, 选择数据库my_db
    database := mclient.Database("admin")
    // 3, 选择表my_collection
    collection := mgMongoDatabase.Collection("deviceToken")

    mlog.Info("connect mongdb successfully")


    // 插入数据
    record := &Test{
        Name:        "小魔童",
        CreateTime: time.Now().Unix(),
        UpdateTime: time.Now().Unix(),
    }
    result, err := collection.InsertOne(context.TODO(), record)
    if err != nil {
        mlog.Error(err)
        return err
    }
    mlog.Info(result)

    // 更新数据
   // if err := UpdateData(bson.M{"name": "xxxx"}, bson.D{{"$set", bson.M{"age": 15}}}); err != nil {
    //      mlog.Error(err)
    //      return
    //  }


    //查询单个记录
    //data := &DeviceToken{}
    //err = collection.FindOne(context.TODO(),bson.M{}).Decode(data)
    //mlog.Info(data)

    //查询所有记录
    data := []DeviceToken{}
    cursor, err := collection.Find(context.TODO(), bson.M{})
    cursor.All(context.TODO(), &data)
    mlog.Info(data)


    // 删除一条记录
    //res ,err := mgMongoCollection.DeleteOne(context.TODO(),bson.M{"name":"xxxx"})
    //if err != nil{
    //  mlog.Warn(err)
    //}

    return nil
}

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

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

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

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

作者:小魔童哪吒

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿兵云原生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
    • 1 下载mongodb安装包
      • 2 安装MONGDB软件
        • 解压mongdb 压缩包
        • 将解压生成的目录 改名为mongodb ,并移动到 /usr/local下
        • 进入mongodb目录下
        • 回到mongo目录下,创建mongodb的配置文件,mongodb.conf,之后启动需要用到
        • 将mongodb可执行程序写入到/etc/profile 中,开机时会自动读取这个文件
        • 启动mongodb服务
        • 关于防火墙
      • 3 关于MONGDB的状态查看
        • 查询mongodb状态
        • 查看端口
        • 关闭mongodb
      • 4 mongdb设置角色、用户名、密码
        • 4.1 选择数据库
        • 4.2 创建管理员账号
      • 5 mongodb设置开机启动
        • 6 可视化工具
        • GOLANG简单操作mongdb
        相关产品与服务
        云数据库 MongoDB
        腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档