Ubuntu 18上安装和配置mongodb

举报
Amrf 发表于 2021/04/23 10:50:38 2021/04/23
【摘要】 # 安装方式一: curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sud...

# 安装

  • 方式一: 
curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt update
sudo apt install mongodb-org

(https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-18-04-source)

  • 方式二:

访问https://mirrors.huaweicloud.com/mongodb/apt/ubuntu/dists/bionic/mongodb-org/4.2/multiverse/binary-amd64/,

分别下载,然后从上到下使用dpkg -i xxx.deb依次进行安装;

# 运行

  • 启动  
    sudo systemctl start mongod.service  
  • 查看状态  
    sudo systemctl status mongod

  • 配置为自启
    sudo systemctl enable mongod
  • 重启服务
    sudo systemctl restart mongod
  • 测试
    mongo --eval 'db.runCommand({ connectionStatus: 1 })'

# mongodb配置

ubuntu18下mongodb 4.2的配置文件默认在/etc/mongod.conf

  • 如果需要远程访问,修改绑定ip

  • 如果需要开启数据库访问权限控制,则需要开启

修改完配置后需要使用sudo systemctl restart mongod重新启动mongod服务,以使新的配置生效

# 新增管理员用户(https://juejin.cn/post/6844903961162416135)

1、进入mongodb的shell:mongo

2、切换数据库:use admin db.createUser( { user: "admin" pwd: "admin", roles: [ { role: "root", db: "admin" } ] } )

user字段,为新用户的名字;

pwd字段,用户的密码;

cusomData字段,为任意内容,例如可以为用户全名介绍;

roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色。在roles字段,可以指定内置角色和用户定义的角色。

--- ---  --- 

数据库用户角色:read、readWrite;

数据库管理角色:dbAdmin、dbOwner、userAdmin;

Read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限

# 创建库和创建授权用户(https://medium.com/mongoaudit/how-to-enable-authentication-on-mongodb-b9e8a924efac)

首先mongo命令进入shell

切换用户 db.auth("admin","admin")

use test
db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" } ]
  }
)

# 插入数据到集合(https://blog.csdn.net/claroja/article/details/100516412)(https://blog.csdn.net/zhujq_icode/article/details/81142157)

db.inventory.insertOne(
...    { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
... )

插入方法    描述
db.collection.insertOne()    Inserts a single document into a collection.
db.collection.insertMany()    db.collection.insertMany() inserts multiple documents into a collection.
db.collection.insert()    db.collection.insert() inserts a single document or multiple documents into a collection.
1.如果collection,不存在则创建集合,再插入
2.如果不指定_id列,会自动创建.必须保证_id唯一,否则会报错

# 创建一个开启数据压缩的集合(https://scalegrid.io/blog/enabling-data-compression-in-mongodb-3-0/)

(https://stackoverflow.com/questions/59610238/how-to-enable-data-compression-in-mongodb)

db.createCollection('collects', {storageEngine: {wiredTiger: {configString: 'block_compressor=zlib'}}})
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。