欢迎访问IT教程网

mongoDB

Linux admin 716℃ 0评论

逻辑

库  -------mysql库

集合-------mysql表

文档json--------数据行

安装mongoDB

配置前提

(1)redhat或centos6.2以上系统
(2)系统开发包完整
(3)ip地址和hosts文件解析正常
(4)iptables防火墙&SElinux关闭
(5)关闭大页内存机制
########################################################################
root用户下
在vi /etc/rc.local最后添加如下代码
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
  echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
sh  /etc/rc/local        
cat  /sys/kernel/mm/transparent_hugepage/enabled        
cat /sys/kernel/mm/transparent_hugepage/defrag  

下载

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.10.tgz

创建用户和目录

useradd mongod
passwd mongod
mkdir -p /mongodb/conf
mkdir -p /mongodb/log
mkdir -p /mongodb/data

解压文件配置环境变量

cd mongodb-linux-x86_64-rhel70-4.0.10
cp -r bin/ /mongodb/
chown -R mongod:mongod /mongodb/
su - mongod
vi .bash_profile
export PATH=/mongodb/bin:$PATH
source .bash_profile

启动

mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --port=27017 --logappend --fork 

登录

mongo

配置文件

[mongod@node1 ~]$ cat /mongodb/conf/mongo.conf 
systemLog:
  destination: file
  path: "/mongodb/log/mongodb.log"     #日志位置
  logAppend: true            #日志已追加模式记录
storage:
  journal:
  enabled: true
  dbPath: "/mongodb/data/"       #数据目录
processManagement:
  fork: true                        #后台守护进程
net:
  port: 27017                      #端口
  bindIp: 192.168.57.3,127.0.0.1          #监听地址

重启

mongod -f /mongodb/conf/mongo.conf --shutdown
mongod -f /mongodb/conf/mongo.conf  

systemd启动

cat > /etc/systemd/system/mongod.service <<EOF
[Unit]
Description=mongodb 
After=network.target remote-fs.target nss-lookup.target
[Service]
User=mongod
Type=forking
ExecStart=/mongodb/bin/mongod --config /mongodb/conf/mongo.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/mongodb/bin/mongod --config /mongodb/conf/mongo.conf --shutdown
PrivateTmp=true  
[Install]
WantedBy=multi-user.target
EOF

systemctl restart mongod

常用的操作

show databases;    查看所有的库
 admin 0.000GB
 config 0.000GB
 local 0.000GB

admin库:系统预留库,MongoDB系统管理库
local库:本地预留库,存储关键日志
config库:MongoDB配置信息库
 > use admin;        使用这个库 如果不存在自动创建
 switched to db admin
 > show tables;      查看表
 system.version

集合的操作

创建一个集合
方式1
db.createCollection('a')
方式2 插入一个文档 会自动创建一个集合
use jcwit
db.jcwit.insert({"name":"zs","Id":3}) 插入数据
db.jcwit.find() 查看内容
db.jcwit.find().pretty() 已json格式显示
db.jcwit.find({"Id":3}) 过滤查看
db.jcwit.remove({"Id":4}) 删除指定内容
db.jcwit.count() 查看一共多少行数据
db.jcwit.totalsize() 集合中索引+数据压缩存储之后的大小

用户及权限认证

创建管理员用户

db.createUser({ user:"root", pwd:"123456", roles: [ {role:"root",db:"admin"}]})
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}

基本语法说明:
user:用户名
pwd:密码
roles:
    role:角色名
    db:作用对象 
role有以下三种:
root,    管理员 
readWrite,  读写
read      只读

启动安全认证,配置文件加入以下内容重启mongod

security:
  authorization: enabled

登录验证

第一种验证方式

[root@node1 ~]# mongo
MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("68a613a0-9511-434f-bae1-618639df1dc5") }
MongoDB server version: 4.0.10
> show databases;   可以看到没授权之前查不到任何数据,然后我们开始认证
> use admin
switched to db admin
> db.auth('root','123456')
1
> show databases;
admin 0.000GB
config 0.000GB
jcwit 0.000GB
local 0.000GB

第二种验证方式

 mongo -uroot -p123456 admin
 mongo -uroot -p123456 192.168.57.3/admin

查看用户

db.system.users.find().pretty()
{
 "_id" : "admin.root",
 "userId" : UUID("0cde9fc8-8069-4ecf-8439-e9650e7c640b"),
 "user" : "root",
 "db" : "admin",
 "credentials" : {
 "SCRAM-SHA-1" : {
 "iterationCount" : 10000,
 "salt" : "dro9/DzODNL2gT/ZCgLJrQ==",
 "storedKey" : "spn1Y5jjsf8ZpxR+S0/nJecGKGo=",
 "serverKey" : "XpY0/zlZExEJnvKMrbEKLbcE6cY="
 },
 "SCRAM-SHA-256" : {
 "iterationCount" : 15000,
 "salt" : "zqSSyhRfUhGPt/U5hPJomZOI6L3guT+bJ1agnQ==",
 "storedKey" : "EnVbmPEogJPWmfP9OPAyts/Jycwx4PP78NR2Vf1iDrI=",
 "serverKey" : "5/4DDb6ecWtPrBMiVPb4Q7S46Gim5w9shRskKnbtAk8="
 }
 },
 "roles" : [
 {
 "role" : "root",
 "db" : "admin"
 }
 ]
}

创建普通管理用户

> use jcwit
switched to db jcwit
> db.createUser({user:"jcwit",pwd:"123",roles:[{role:"readWrite",db:"jcwit"}]})
Successfully added user: {
 "user" : "jcwit",
 "roles" : [
 {
 "role" : "readWrite",
 "db" : "jcwit"
 }
 ]
}

mongo -ujcwit -p123  jcwit  登录管理jcwit这个库

删除用户

> use jcwit
switched to db jcwit
> db.dropUser("jcwit")
true

 

本文固定链接:IT教程网 » mongoDB
本站内容除特别标注外均为原创,欢迎转载,但请保留出处!

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址