事由:
发现服务器接口涉及到数据库访问的都没成功响应,经排查是由于服务器储存达到上限了(50GB实在是有点太小),处理过程中重启了服务器,之后发现数据库数据都不见了,通过万能的百度最终恢复了,以下是几个相关操作的步骤,希望能帮到类似经历的小伙伴
重启服务器前,要安全退出数据库,不然可能会数据损坏!!!
1.登陆进mongo
mongo -port=xxxx -u 'xxxx' -p 'xxxx'
2.user admin// 切换账号 3.db.shutdownServer() //关闭数据库
查看和终止mongo进程
查看:
ps aux | grep mongod
终止:
killall -9 mongod
ps:启动前可以查看下mongo进程
mongod和mongo的区别
- mongod命令类似建了一个商城
- mongo命令就是对商城进行布局,账号的管理
- mongod有很多配置的属性,根据自身的需求来定义,个人比较常用的是以下这些
mongod --bind_ip_all --port=xxxx --fork --dbpath=xxxx --logpath=xxxx --auth
bind_ip_all:是允许所有ip的链接 auth:是开启账号验证,提高安全性 fork:守护进程 dbpath:数据存放的位置 logpath:日志存放的位置 port:端口(推荐自定义)
- mongod正常开启后就可以对数据库进行操作 ps:这里因为开启了auth账号验证,所以需要先进入mongo添加你个人的账号和密码以及对应的权限,然后退出再登陆,这样就可以用账号来登陆,不然mongo会提示没有相关的权限来操作数据库。
db.createUser({
user :"user1",
pwd:"1234",
roles : ["root"]
})
mongo -port=xxx -u 'user1' -p '1234'
多说两句: 1.mongo还是比较容易上手的,也有可视化软件。 2.开启后要看下防火墙有没有开启对应的端口,这也是我之前漏的一个环节。 3.对于提高安全,端口和验证非常有必要,尽量不用默认端口,因为会被破解,所以提醒下刚来体验mongo的小伙伴,虽然前期可能觉得没什么,当你数据越来越多时,万一被锁了,后悔莫及了,所以还是换端口和开启验证是非常有必要的。