monggo安装与简单操作

xupan003_monggo


yum 安装可以配置本地源
vim /etc/yum.conf 

keepcache=0改为keepcache=1

yum 下载好的rpm包在/var/cache/yum/x86_64/6/mongodb-org-3.4/packages

yum localinstall mongodb-org 或则 rpm -ivh *.rpm

============================================================== 

bin/mongod --port 27017 --fork -dbpath=/usr/local/devtools/mongdb/mongodb/db/ --logpath=/usr/local/devtools/mongdb/mongodb/logs/mongodb.log --logappend

netstat -lanp | grep "27017"  #查看MongoDB是否启动

cd /usr/local/mongodb/bin/

./bin/mongo --host xupan003 --port 27017               ||                    ./mongo  #进入MongoDB数据库控制台

use admin  #进入admin数据库

db.shutdownServer()  #关闭MongoDB数据库

exit #退出

use bike                //创建database bike
db.createCollection("bike") //c创建collection 相当于table

db.bike.insert("_id":1,"status" : 1,"desc":"test") //insert data

 db.bike.find();    //查找
{ "_id" : 1, "status" : 1, "desc" : "test" }


=====================================================================

一,安装
1,官网下载系统对应的源码包
       mongodb-linux-x86_64-rhel62-3.2.0.tgz

2,解压

tar zxvf mongodb-linux-x86_64-rhel62-3.2.0.tgz   
3,设置环境变量,/etc/profile中添加mongodb的bin路径

export PATH=$PATH:/usr/local/mongodb/bin  
source /etc/profile  
4,创建数据目录和日志目录(mongodb没有安装文件,也不会生成任何文件夹,需要创建数据目录和日志目录)

[plain] view plain copy
mkdir /usr/local/mongodb/data  
mkdir /usr/local/mongodb/log  

二,启动
1,命令带多参数启动

[plain] view plain copy
mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/dblogs --fork --journal --logappend  
    参数
    --dbpath:数据目录
    --logpath:日志文件夹路径
    --fork:后台运行,或者“&”
    --journal:write ahead logging
    --logappend: 对存在的日志追加,如果没有这个选项,新日志将会覆盖旧的日志
2,命令带配置文件启动
(1) 新建配置文件

[plain] view plain copy
vi /etc/mongodb.conf  
dbpath=/usr/local/mongodb/data  
logpath=/usr/local/mongodb/log/mongodb.log  
port=27071  
fork=true  
journal=true

(2)启动
mongod -f /etc/mongodb.conf  
     参数
     -f:配置文件

3,登录
(1) 默认端口号登录
mongo 

(2) 指定端口号登录
mongo 192.168.1.1:27001  

三,关闭
1,非后台运行时,关闭对话,或者ctrl+c
2,登录数据库执行:db.shutdownServer();
3,带数据目录,关闭服务器,安全
mongod  --shutdown  --dbpath /database/mongodb/data/  
配置文件


./bin/mongod --repair  

mongdb一个NoSQL数据库,里面存储的是BSON(Binary Serialized Document Format,支持集群,高可用、可扩展。

mongdb中的一些概念
  MongoDB        MySQL
  database       database
  collection     table
  json       二维表
  不支持SQL     SQL
  _id          主键

-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------

#创建一个普通用户mongo
useradd mongo

#为hadoop用户添加密码:
echo mongo | passwd --stdin mongo

#将bigdata添加到sudoers
echo "mongo ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/mongo
chmod 0440 /etc/sudoers.d/mongo
#解决sudo: sorry, you must have a tty to run sudo问题,在/etc/sudoer注释掉 Default requiretty 一行
sudo sed -i 's/Defaults    requiretty/Defaults:mongo !requiretty/' /etc/sudoers

#配置mongo的yum源
sudo vi /etc/yum.repos.d/mongodb-org-3.4.repo

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

#关闭selinux
vi /etc/sysconfig/selinux 
SELINUX=disabled

#重新启动
reboot

------------------------------------------------------------------------------------------------
###mongo的安装和基本使用###
------------------------------------------------------------------------------------------------
#在机器上使用mongo用户登录(本地安装给你了rpm包,rpm -ivh *.rpm)
sudo yum install -y mongodb-org

#修改mongo的配置文件
sudo vi /etc/mongod.conf 

#注释掉bindIp或者修改成当前机器的某一个ip地址

#启动mongo
sudo service mongod start

#连接到mongo
#如果注释掉了bindIp,那么连接时用
mongo
#指定了ip地址
mongo --host 192.168.100.101 --port 27017

#使用或创建database
use bike

#创建集合(表)
db.createCollection("bike")

#插入数据
db.bike.insert({"_id": 100001, "status": 1, "desc": "test"})
db.bike.insert({"_id": 100002, "status": 1, "desc": "test"})

#查找数据(所有)
db.bine.find()

#退出
exit

#关闭mongo服务
sudu service mongod stop

#设置服务开机启动
sudo checkconfig mongod on

#设置mongo服务开机不启动
sudo chkconfig mongod off

------------------------------------------------------------------------------------------------
###mongo安全认证配置###
#如果修改了mongo存储是的目录那么一定要修改该目录的所属用户和组为mongod
#chown -R mongod:mongod  /mongo/
------------------------------------------------------------------------------------------------
#添加管理员用户
#使用admin这个database
use admin

#在没有开启认证的情况下,创建一个超级用户
db.createUser(
     {
       user: "mongo",
       pwd: "mongo",
       roles: [ {role: "root", db: "admin" }]
     }
)

#修改mongo的配置文件/etc/mongod.conf,配置mongo的安全认证
security:
  authorization: enabled

#重启mongo服务
service mongod restart


#重新使用mongo shell连接
mongo

#使用admin database
use admin

#授权登录
db.auth("admin", "admin123")

#创建一个bike数据库
use bike

#添加一个普通用户,具备读写权限
db.createUser(
     {
       user: "xp",
       pwd: "xp",
       roles: ["readWrite"]
     }
)

#使用小牛用户登录
mongo
use bike
db.auth("xp", "xp")

#在database下创建collection
db.createCollection("users")
db.createCollection("bikes")
db.createCollection("logs")

#插入数据
db.users.insert( { name: "laozhao", age: 30 } )

#查找
db.users.find()

db.users.update({'name':'laozhao'},{$set:{'age': 18}},{multi:true})

db.users.remove({'name': 'laoduan'})
db.users.remove({'name': 'laoduan'}, 1)

db.users.find({"name":"laoduan", "fv": 99.99})


#查看当前db的索引
db.logs.getIndexes()

#创建索引
db.logs.ensureIndex({"name":1})

#删除索引
db.logs.dropIndex({"name":1})

#开启运行用户从其他机器连接mongodb
#不然会报错Caused by: java.net.ConnectException: Connection refused (Connection refused)
#修改/etc/mongod.conf,注释掉bindIp:
#  bindIp:

#重启mongodb
service mongod restart


数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system

 

转载于:https://my.oschina.net/u/2253438/blog/1594127

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值