mongo记录

117 阅读2分钟

事由:

发现服务器接口涉及到数据库访问的都没成功响应,经排查是由于服务器储存达到上限了(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命令就是对商城进行布局,账号的管理
  1. mongod有很多配置的属性,根据自身的需求来定义,个人比较常用的是以下这些
mongod --bind_ip_all --port=xxxx --fork --dbpath=xxxx --logpath=xxxx --auth

bind_ip_all:是允许所有ip的链接 auth:是开启账号验证,提高安全性 fork:守护进程 dbpath:数据存放的位置 logpath:日志存放的位置 port:端口(推荐自定义)

  1. 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的小伙伴,虽然前期可能觉得没什么,当你数据越来越多时,万一被锁了,后悔莫及了,所以还是换端口和开启验证是非常有必要的。