Ubuntu下安装使用MongoDB

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: Ubuntu下安装使用MongoDB

安装MongoDB


apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
apt-get update
apt-get install -y mongodb-org


启动、连接、配置


启动MongoDB服务,默认安装后,是启动MongoDB服务的

service mongod stop  # 停止服务
service mongod start  # 启动服务
service mongod restart # 重新启动服务
service mongod status # 查看状态
chkconfig mongod on # 加入开机启动服务

客户端连接,mongo安装完成后,默认是只能在本机连接,在服务器外部是不能连接mongo的 可通过vim 修改/etc/mongod.conf中的net,bindIP,把127.0.0.1改为0.0.0.0,可从配置文件中获取到以下目录存储信息


  • 数据目录:/var/log/mongodb
  • 日志目录:/var/lib/mongodb


基本操作


  • Management
mongo # 连接默认数据库test;
db # 显示当前连接的数据库;
show dbs # 显示所有可连接的数据库;
use dbName # 切换数据库(若DB不存在,则创建);
show tables # 显示数据库中的表;
db.getCollectionNames() # 显示数据库中的表;
  • CRUD
db.tableName.find().count():查找对应数据表中的所有数据条数;
db.tableName.find().pretty():查找对应数据表中的所有数据,并格式化显示;
db.tableName.findOne({name:'Tom'}):查找对应数据表中的一条数据;
db.tableName.insert({
  name:'n',
  password:'000000'
});
db.tableName.update({name:'n'}, {$set:{password:'111'}});
db.tableName.remove({name:'n'});
db.tableName.drop(); :删除数据表
db.dropDatabase(); :删除数据库
  • Other operations
db.getCollectionNames(); :获取所有数据表名
db.oldname.renameCollection("newname"); :数据表重命名


用户:认证与授权


创建用户:


记住关键的一点:在MongoDB中用户跟着数据库走。


1 添加管理用户(mongoDB中没有超级管理员用户,只有用来管理用户的用户userAdminAnyDatabase

use admin
db.createUser({
  user: "用户名",
  pwd:"密码",
  roles:[{ role: "userAdminAnyDatabase", db: "admin" }]
})

2 开启认证:/etc/mongod.conf中修改:

security:  
  authorization: enabled

3 重启mongod, 认证


以创建的管理用户身份进行认证

> use admin
switched to db admin
> db.auth("用户名","密码")   # 认证成功返回1
1

Note:


  • 若不进行认证,将无法进行后续操作


2018-10-26T14:35:17.218+0800 E QUERY    [thread1] Error: listCollections failed: {

"ok" : 0, "errmsg" : "not authorized on admin to execute command { listCollections: 1.0, filter: {} }", "code" : 13, "codeName" : "Unauthorized" } : _getErrorWithCode@src/mongo/shell/utils.js:25:13 DB.prototype._getCollectionInfosCommand@src/mongo/shell/db.js:807:1 DB.prototype.getCollectionInfos@src/mongo/shell/db.js:819:19 DB.prototype.getCollectionNames@src/mongo/shell/db.js:830:16 @(shell):1:1


  • admin用户仅具有用户管理权限


4 为指定库创建读写权限的用户

use targetDB
db.createUser({
  user: "hello",
  pwd:"world",
  roles:[{ role: "readWrite", db: "targetDB" }]
})
  1. 查看已创建的用户


  • 通过admin认证后,可以查看已创建的所有用户。
db.system.users.find().pretty();
  • 使用刚创建的读写权限的用户认证
> use targetDB
switched to db targetDB
> db.auth('hello', 'world')
1


数据导出、导入,备份、恢复


导出:mongoexport -d 库名 -c 表名 -o 目录\表名.json --type json
导入:mongoimport -d 库名 -c 表名 --file 目录\表名.json --type json
备份:mongodump -h localhost -u 用户名 -p 密码 -d 库名 -o 目录
恢复:mongorestore -h ip:port -u 用户名 -p 密码 -d 库名 --dir 目录


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
3月前
|
存储 NoSQL MongoDB
如何在 Ubuntu 12.04 VPS 上使用 MongoDB 创建分片集群
如何在 Ubuntu 12.04 VPS 上使用 MongoDB 创建分片集群
35 0
|
3月前
|
Ubuntu Linux Windows
如何在WSL中的ubuntu编译Linux内核并且安装使用ebpf?
请注意,在WSL1中可能会由于内核架构限制而无法成功进行以上过程,WSL2对于Linux内核的完整支持更为合适。此外,部分步骤可能因不同的Linux发行版或内核版本而异。
174 4
|
3月前
|
NoSQL Ubuntu MongoDB
在Ubuntu 16.04上安装和保护MongoDB的方法
在Ubuntu 16.04上安装和保护MongoDB的方法
35 1
|
3月前
|
JSON NoSQL Ubuntu
在Ubuntu 14.04上如何备份、恢复和迁移MongoDB数据库
在Ubuntu 14.04上如何备份、恢复和迁移MongoDB数据库
90 1
|
3月前
|
JSON NoSQL MongoDB
在Ubuntu 14.04上如何导入和导出MongoDB数据库
在Ubuntu 14.04上如何导入和导出MongoDB数据库
24 0
|
6月前
|
Ubuntu Python
ubuntu同一开源库多版本安装使用注意事项
总之,同时安装和使用同一开源库的多个版本需要仔细考虑,避免引起各种冲突和问题。最好的做法是在隔离的环境中进行测试,确保不同版本的库能够和其他组件正常协同工作。
150 0
|
6月前
|
Ubuntu Shell Docker
docker Ubuntu系统中安装使用 powershell
docker Ubuntu系统中安装使用 powershell
87 0
|
6月前
|
安全 网络安全 数据安全/隐私保护
Ubuntu20 安装使用OpenSSL
Ubuntu20 安装使用OpenSSL
159 0
|
6月前
|
NoSQL MongoDB Docker
Ubuntu18 Install MongoDB
Ubuntu18 Install MongoDB
64 0
|
6月前
|
Ubuntu 前端开发 JavaScript
前端破圈Win11系统下安装使用Ubuntu子系统🏴‍☠️
前端破圈Win11系统下安装使用Ubuntu子系统🏴‍☠️
160 0