CentOS7上安装MongoDB及基础命令学习
Posted Thgilil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7上安装MongoDB及基础命令学习相关的知识,希望对你有一定的参考价值。
安装MongoDB
安装各个Linux平台依赖包
> ##Red Hat/CentOS
> sudo yum install libcurl openssl
>
> ##Ubuntu 18.04 LTS ("Bionic")/Debian 10 "Buster"
> apt-get install libcur14 openssl
>
> ##Ubuntu 16.04 LTS ("Xenial")/Debian 9 "Stretch"
> apt-get install libcurl3 openssl
MongoDB源码下载地址
https://www.mongodb.com/download-center#community
我这里使用的是Centos7,下载连接和Ubuntu、Debian不同,具体可以到官网copy下载地址
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.2.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-5.0.2.tgz
mv mongodb-linux-x86_64-rhel70-5.0.2 /usr/local/mongodb5
将安装路径/usr/local/mongodb5/bin目录添加到PATH路径
export PATH=/usr/local/mongodb5/bin:$PATH
创建数据库目录
默认情况下MongoDB启动后会初始化以下两个目录:
- 数据库储存目录: /var/lib/mongodb
- 日志文件目录: /var/log/mongodb
创建目录并设置当前用户读写权限:
mkdir -p /var/lib/mongo
mkdir -p /var/log/mongodb
chown `whoami` /var/lib/mongo # 设置权限
chown `whoami` /var/log/mongodb # 设置权限
启动Mongodb
启动Mongodb服务:
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
为了安全起见,我们启动Mongodb服务时最好在参数中加入–auth,且数据库后添加管理员账号,这样就会开启Mongodb数据库的登录认证功能,防止mongodb服务开放到公网上,攻击者通过未授权访问漏洞进行入侵。
进入MongoDB后台管理shell
usr/local/mongodb5/bin/mongo
进入shell后,运行简单的算术运算:
停止mongodb服务
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown
停止mongodb服务后再此连接则无法进行连接
或者直接在shell中停止mongodb服务
use admin
db.shutdownServer()
MongoDB基础
MongoDB术语与mysql对比
Mongodb认证
在mongodb文件加下创建mongo.config文件
touch mongo.config
写入如下配置
vim mongo.config
dbpath=/home/root/mongodb/data
logpath=/home/root/mongodb/logs/mongo.log
logappend=true
journal=true
quiet=true
port=27017
auth=true
#若存在账号,则必须使用账号验证登录
新建管理员用户并指定权限
use admin
db.createUser({
user : 'root',
pwd : '123456',
roles : [
'clusterAdmin',
'dbAdminAnyDatabase',
'userAdminAnyDatabase',
'readWriteAnyDatabase'
]
})
# readAnyDatabase 任何数据库的只读权限
# userAdminAnyDatabase 任何数据库的读写权限
# userAdminAnyDatabase 任何数据库用户的管理权限
# dbAdminAnyDatabase 任何数据库的管理权限
启动MongoDB服务
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
进入数据库
cd /usr/local/mongodb5/bin/
./mongo
MongoDB连接shell
mongodb://[username:password@]host1[:port1][,host2[:port2]...[/[database][?option]]
mongodb:// 固定格式
username:password@ 可选,若未设置则使用默认账号 密码,当开启外联后可能会造成未授权登录
hostx 必选一个
portx 可选,未设置默认为27017
/database 可选,未设置默认进入test数据库
?options 连接选项
示例
##默认端口连接MongoDB服务
mongodb://localhost
##使用admin/123456连接到本地MongoDB服务器,登录指定数据库test,不指定则登录到admin数据库
mongodb://admin:123456@localhost/test
创建数据库(未插入数据时不再数据库中显示)
use student
查看当前数据库名
为进入某个数据库时使用test数据库
db
查看所有数据库
show dbs
向数据库插入数据
在未创建集合时插入文档,数据库会自动创建集合
db.student.insert({name:"小红",age:"10"})
删除当前数据库
db.dropDatabase()
创建集合
db.createCollection(name,options)
#如:
db.createCollection("class2")
查看已存在集合
show collections
删除集合(collection_name为某个集合名,下同)
db.collection_name.drop()
查询文档
db.collection_name.find()
db.collection_name.find().pretty() #格式化使其易读
#如
db.class2.find().pretty()
插入文档
#二者都可
db.collection_name.insert(document)
db.collection_name.save(document)
#如
db.class2.insert({name:"小明",age:"9"})
更新文档
db.collection_name.update({name:"小明"},{$set:{name:"张光明"}})
#如
db.class2.update({name:"小明"},{$set:{name:"张光明"}})
删除文档
db.collection_name.remove()
#如,移除name为小红的文档
db.class2.remove({name:"小红"})
以上是关于CentOS7上安装MongoDB及基础命令学习的主要内容,如果未能解决你的问题,请参考以下文章