美文网首页
mongo安装并第一次使用

mongo安装并第一次使用

作者: 小小了墨 | 来源:发表于2019-08-13 11:40 被阅读0次

mongodb

安装

参考 mongo官网

  1. 配置yum源
vim /etc/yum.repos.d/mongodb-org-3.6.repo

写入下面

# [mongodb-enterprise]
[mongodb-org-3.6]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.6/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
  1. 通过yum安装
sudo yum install -y mongodb-org
  1. 启动mongo
systemctl start mongod.service
  1. 查看版本
mongo
  1. 设置开机自启动
systemctl enable mongod.service
  1. 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

创建管理用户

mongodb安装好后第一次进入是不需要密码的,也没有任何用户

  1. 连接,并创建
$ mongo

> use admin

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

Successfully added user: {
    "user" : "root",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}

权限:

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

> use admin

> show users

{
    "_id" : "admin.root",
    "userId" : UUID("0d11a990-f187-4fff-9c9d-169eba9a5da2"),
    "user" : "root",
    "db" : "admin",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ],
    "mechanisms" : [
        "SCRAM-SHA-1",
        "SCRAM-SHA-256"
    ]
}

配置远程访问

  1. 修改配置文件
vim /etc/mongod.conf
# bindIp: 127.0.0.1 那一行可以注释掉,也可以修改为如下所示:

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.

# 远程连接数据库验证,旧版本为auth = true
security:
    authorization: enabled #注意缩进,参照其他的值来改,若是缩进不对可能导致后面服务不能重启

重启

systemctl restart mongod.service
  1. 查看数据库版本
~ mongo
MongoDB shell version v3.6.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.5

> use admin
switched to db admin

> db.system.version.find()
{ "_id" : "featureCompatibilityVersion", "version" : "3.6" }
{ "_id" : "authSchema", "currentVersion" : 5 }
# 发现版本不一致

> db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":3}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.system.version.find()
{ "_id" : "featureCompatibilityVersion", "version" : "3.6" }
{ "_id" : "authSchema", "currentVersion" : 3 }
# 一致了
  1. 添加用户
> use admin

> db.createUser({user:"test",pwd:"123456",roles:[{"role":"userAdminAnyDatabase","db":"admin"},{"role":"readWrite","db":"test"},'readWrite']})
Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        },
        {
            "role" : "readWrite",
            "db" : "test"
        }
    ]
}

> db.auth('test', '123456')
# 创建用户或者修改后需要认证下,成功返回1,失败返回0
  1. 重启mongo 并开放27017端口
systemctl restart mongod.service
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
  1. 远程可视化工具
    1. db设置为admin
    2. userName: 你设置的用户名
    3. password: 你设置的密码
    4. 连接的地址: 你的服务器ip:27017

相关文章

网友评论

      本文标题:mongo安装并第一次使用

      本文链接:https://www.haomeiwen.com/subject/vtevjctx.html