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及基础命令学习的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB学习笔记——数据库安装及配置

零基础学习MongoDB——连接数据库

零基础学习MongoDB——连接数据库

Centos7.X通过rpm包安装Docker

MongoDB+MongoVUE安装及入门

Mongodb 参数说明及常见错误处理