mongodb
mongodb属于非关系型数据库,现在很多企业都拥有非关系型数据库,主要是因为非关系型数据库更适合现在广大客户的上网需求。
mongodb属于非关系型数据库的其中一种,它可以在官网上进行下载,同样也可以通过yum库下载。
mongodb基础操作
1)yum下载mongodb,yum -y install mongodb-org,在此之前建议上华为或者阿里云上更换一下镜像源
vim /etc/yum.repos.d/mongodb-org.repo
[mongodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.4/x86_64/
gpgcheck=0
enabled=1
yum install -y mongodb-org
2)由于mongodb首先自带大页内存,如果要更改数据库配置文件而不出错,在此之前需要更改配置文件vim /etc/rc.local,在后续追加以下内容,关闭大页内存。
echo 0 > /proc/sys/vm/zone_reclaim_mode echo never >
/sys/kernel/mm/transparent_hugepage/enabled echo never >
/sys/kernel/mm/transparent_hugepage/defrag
而后保存跳出输入sh /etc/rc.local刷新配置文件,进而就可以对配置文件进行更改。
3)启动数据库
systemctl start mongod
systemctl enable mongod
使用curl命令来查看数据库是否启动成功
curl http://localhost:27017
It looks like you are trying to access MongoDB over HTTP on the native driver port.
出现上述命令串后,证明已经启动成功了
4)默认启动命令:mongo
此为查看库的命令,也可以使用show dbs来查看,查看库的命令和show dtaabses;是一样的,进入admin的库之后,查看表的命令中show tables;和show collections;命令也是一样的。
5)
日志存储位置:
path: /var/log/mongodb/mongod.log
数据存储位置:
dbPath: /var/lib/mongo
6)创建表格,mongodb的创建表格很简单,不需要先创建表格,也不需要设定格式,只需要进行格式的插入,那么如果该库中没有同名的表格,就会自动创建一个表格。
> use xiaoyang; (创建xiaoyang表格) db.xiaoyangtable.insert({键:值}) 插入一条表格
> db.xiaoyangtable.find() 查找表格
> db.xiaoyangtable.update({要修改的键:要修改的值},{修改的键:修改的值}) 修改表格的数据
> db.xiaoyangtable.remove({id:2}) 选定表格行中的关键键,可以直接删除拥有该关键键的行
> db.dropdatabases 删除库 db.dropDatabase(); 删除当前所在库的表格 cls 清屏
导入导出
1)批量创建信息,利用for循环
for(i=1;i<=1000;i++){db.xiaolang.insert({id:i,name:‘alice’})};
而后使用db.xiaolang.find(),会发现只会出现20行,这是因为数据库默认只会出现20行
2)导出数据
mongoexport -d test -c 表格 -o 储存位置/表名.json
mongoexport -dxiaoyang -cxiaolang -o /opt/xiaolang.json
可以进入存储的地方查看该文件:
3)导入数据,模拟数据表格丢失:
db.dropDatabase();
4)在linux操作界面输入:
`mongoimport -dxiaoyang -cxiaolang --file /opt/xiaolang.json`
5)导出id大于500的数据:
mongoexport -dxiaoyang -cxiaolang -q'{"id":{"$gt":500}}' -o /opt/xiaolang.json
6)删除表格重新导入数据,并进行查看
可以看到都是从500开始了
备份
mongodump -h 127.0.0.1:27017 -d 备份的库 -o /opt/进行进行备份
mongorestore -h127.0.0.1:27017 -d 库名(创建的新库名) --dir=/opt/备份之后的名字
进行查看是否有一个一模一样的库:
克隆
即复制一个备份的配置文件,在进行名字,端口的修改之后开启该配置文件,即可进行端口的连接
1)复制/etc/mongo.conf创建一个新文件/etc/mongo1.conf
2)更改以下内容为新的Mongo的名字和新的端口号
3)保存退出之后,cp -rf /var/lib/mongo /var/lib/mongo1
4)输入mongod -f /etc/mongod1.conf 命令开启mongo1数据库
5)直接输入mongo会默认登录端口号27017的端口,想登录另外一个克隆的数据库可以输入 mongo --port 端口号
监控
1)修改配置文件,vim /etc/mongo.conf
2)输入mongod -f /etc/mongod.conf --shutdown
3)输入mongod -f /etc/mongod.conf --httpinterface 如果不修改配置文件就是临时开启
4)输入netstat -ntl查看,会发现多出来一个端口:
5)在浏览器中登录进行访问:自身ip地址+28017端口号
6)进程管理
查看当前正在运行的进程
db.currentOp()
杀死高消耗的进程
db.killOp(268)
“小驼峰” killOp
“大驼峰” StudentOp
授权
1)创建管理用户,有了端口号之后,需要指定ip地址和端口号才可以进行登录
mongo --host 192.168.53.110:27017
db.createUser(
{
user: "用户名",
pwd: "密码",
roles: [ { role: "root", db: "管理库名" } ]
}
)
db.createUser({user:"root",pwd:"123",roles:[{role:"root",db:"admin"}]})
2)创建普通用户,只能在当前所在库创建时的用户名才能进行管理
db.createUser({user:"用户名",pwd:"密码",roles:[{role:"readWrite(读写)",db:"管理库名"}]})
db.createUser({user:"xiaoyang",pwd:"123",roles:[{role:"readWrite",db:"xiaoyang"}]})
3)验证
db.auth(“robin”,“123”)
1
备注:返回值为1说明验证成功
4)开启用户验证
配置/etc/mongo.conf文件中,加入以下配置
security:
authorization: enabled
5)验证用户
方式1:
[root@localhost ~]# mongo --host 192.168.100.10:27017
此刻输入任何命令都会报错显示没有权限,这是需要进入到设定管理的相应的库中进行
db.auth(“robin”,“123”);
如果显示结果为1则可以在该库进行相应的操作
方式2:
[root@localhost ~]# mongo -uroot -proot 192.168.100.10:27017
管理账号可以使用任何的权限,所以可以管理任何的库
6)删除账号robin,需要用到管理账号才可以进行相应的删除
> db.dropUser("robin");
false
> use kgc
switched to db kgc
> db.dropUser("robin");
true