快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

解决mongodb数据丢失的方法

这篇文章将为大家详细讲解有关解决MongoDB数据丢失的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

成都创新互联公司长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为汉阴企业提供专业的成都网站建设、网站建设汉阴网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

mongodb数据丢失后采用增加mongo数据库的auth权限进行解决。

增加了auth权限之后,设置了用户名和密码,重启node,发现如下错误!

2017-01-02T07:29:07.626753+00:00 app[web.1]: MongoError: auth failed

2017-01-02T07:29:07.626756+00:00 app[web.1]:     at Object.toError (/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/utils.js:114:11)

2017-01-02T07:29:07.626758+00:00 app[web.1]:     at /app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:1156:31

2017-01-02T07:29:07.626759+00:00 app[web.1]:     at /app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:1890:9

2017-01-02T07:29:07.626760+00:00 app[web.1]:     at Server.Base._callHandler 

(/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/base.js:448:41)

2017-01-02T07:29:07.626762+00:00 app[web.1]:     at /app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:481:18

2017-01-02T07:29:07.626763+00:00 app[web.1]:     at MongoReply.parseBody 

(/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:68:5)

2017-01-02T07:29:07.626766+00:00 app[web.1]:     at null. 

(/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:201:13)

2017-01-02T07:29:07.626765+00:00 app[web.1]:     at emit (events.js:95:17)

2017-01-02T07:29:07.626764+00:00 app[web.1]:     at null. 

(/app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:439:20)

2017-01-02T07:29:07.626767+00:00 app[web.1]:     at emit (events.js:98:17)

2017-01-02T07:29:07.413053+00:00 app[web.1]: Listen the port 11221

2017-01-02T07:29:07.623584+00:00 app[web.1]: /app/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/base.js:246

2017-01-02T07:29:08.438433+00:00 heroku[web.1]: Process exited with status 8

这是因为mongodb 3.0的用户机制改变了,数据库账户需要重新设置一下。

具体方法如下:

方法一:

shell进入mongo,use admin,创建admin账户3.0创建新用户方法 db.createUser,具体可查看官方文档

use admin
db.createUser(
   {
     user: "root",
     pwd: "password",
     roles:
       [
         { role: "dbOwner", db: "你的数据库名字" }
       ]
   }
)

创建一个超级管理员账号,

这个root就可以操作你的数据库了!

方法二:

首先关闭 auth权限

然后

use 你的数据库表名
db.createUser(
   {
     user: "root",
     pwd: "password",
     roles:
       [
         { role: "dbOwner", db: "你的数据库名字" }
       ]
   }
)

创建针对你数据库的用户名和密码。

然后:

进入到你的数据库表,use "你的数据库表" 验证刚才创建的root 账户

  db.auth(‘root’,‘pwd’)//成功连接

重启mongodb,开启auth=true;(开启--auth)

重启mongodb数据库。首先关闭数据库:

killall mongod

然后启动!

mongodb数据库重启之后,重启nodejs,发现还是会报错误!错误如下

throw new Error('invalid schema, expected mongodb'

经过查询,然后升级了一下mongodb和schema等等,然后在重启nodejs,发现可以启动了!因此,mongo数据库博客安全性修改完毕。

关于解决mongodb数据丢失的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


本文标题:解决mongodb数据丢失的方法
链接分享:http://6mz.cn/article/pcoops.html

其他资讯