前言

       MongoDB数据库的版本为3.0.7。记录在使用MongoDB数据库时遇到的各种问题,目前是遇到一个整理一个,没有进行分类,等整理较多的时候,进行分类整理一下。

1.使用可视化工具连接时,身份验证失败,Authorization failed

       当使用MongoVUE或者Robomongo连接数据库时,验证失败。

解决办法

(1)首先,关闭集群服务器,以非身份验证启动集群

(2)然后,登陆一个mongos和每个分片服务器,修改admin数据库下的system.version集合,原先为{"currentVersion" : 5}。db.system.version.update({ "_id" : "authSchema"},{$set: {"currentVersion" : 3} })

(3)最后,在修改版本后重新建立所有用户,重新启动集群并加上身份验证即可。

原因

       这和MongDB的验证机制有关,3.0开始默认使用的验证模式为SCRAM-SHA-1(currentVersion=5),2.6以前使用的是MONGODB-CR(MongoDB Challenge and Response) (currentVersion=3)验证方式。

       3.0的bug:https://jira.mongodb.org/browse/SERVER-17459

2.集群分片失败

有以下几个原因:

(1)保证服务器端口都通,关闭防火墙吧,systemctl stop firewalld

(2)保证服务器时间最好差小于30秒

date -s '05/24/2016 15:27:05'      ntpdate –u x.x.x.x

(3)数据量太少没达到分片要求

3.TTL索引失效

有以下几个原因:

(1)保证建TTL索引的字段是日期类型,若用数组,保证数组包含日期类型的数据

(2)建立索引时使用expireAfterSeconds全拼,不能缩写如下

db.coll.ensureIndex({"ttlkey":1},{"expireAfterSeconds":60*60*12}) 过期时间为 12h

4.怎么关闭集群

       按照mongos-config-shard的顺序关闭集群,登录相应的数据库,选择admin数据库,使用db.shutdownServer()关闭服务。

       如果启用了身份验证,切记启用前就创建了admin用户,不只是mongos创建,各分片服务器也要创建。

5.mongod服务启动失败

有以下几个原因:

(1)确定数据目录是否存在

(2)查看--dbpath 目录下的mongod.lock文件,此文件大小若不是0,表示上次是非正常退出数据库,此时有两种方法,一是直接删除此文件,二是修复数据库(repair database)

6.mongod服务启动时警告信息

(1)WARNING: You are running on a NUMA machine.

       这是由多核CPU引起的,解决办法是进入mongodb安装目录的bin目录,使用numactl --interleave=all ./mongod 启动mongod服务

(2)WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
       WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.

       使用以下命令直接关闭即可:

       # echo never >/sys/kernel/mm/transparent_hugepage/enabled
       # echo never >/sys/kernel/mm/transparent_hugepage/defrag

MongoDB-常见问题的更多相关文章

  1. MongoDB副本集配置系列九:MongoDB 常见问题

    What is a namespace in MongoDB? If you remove a document, does MongoDB remove it from disk? When doe ...

  2. mongodb常见问题

    1.count统计结果错误 这是由于分布式集群正在迁移数据,它导致count结果值错误,需要使用aggregate pipeline来得到正确统计结果,例如: db.collection.aggreg ...

  3. mongodb 常见问题处理方法收集

    问题1:非正常关闭服务或关机后 mongod服务无法正常启动 在使用中发现mongodb 的服务可能因为非正常关闭而启动不了,这时我们通过 删除data目录下的 *.lock文件,再运行下/mongo ...

  4. MongoDB 常见问题 - 解决找不到 mongo、mongod 命令的问题

    问题背景 成功安装 MongoDB 后执行 Mongo.MongoD 显示找不到命令 解决方案 echo 'export PATH="/usr/local/opt/mongodb-commu ...

  5. MongoDB 常见问题 - 解决 brew services list 查看 MongoDB 服务 status 显示 error 的问题

    问题背景 将 MongoDB 作为服务运行 brew services start mongodb-community@4.4 也显示运行成功了,但是查看服务列表的时候,发现 MongoDB 服务的还 ...

  6. .Net Core 操作 MongoDB 常见问题及解决方案

    System.FormatException:"Element '_id' does not match any field or property of class XXXX." ...

  7. MongoDB的环境搭建及启动

    MongoDB环境搭建及配置 一.环境搭建 Mac:brew install mongodb 常见问题: Error: Permission denied @ unlink_internal 解决方案 ...

  8. NodeJs操作MongoDB之分页功能与常见问题

    NodeJs操作MongoDB之分页功能与常见问题 一,方法介绍 1,聚合操作之count count()方法可以查询统计符合条件的集合的总数 db.User.count(<query>) ...

  9. NodeJs操作MongoDB之多表查询($lookup)与常见问题

    NodeJs操作MongoDB之多表查询($lookup)与常见问题 一,方法介绍 aggregate()方法来对数据进行聚合操作.aggregate()方法的语法如下 1 aggregate(ope ...

  10. 常见问题:MongoDB基础知识

    常见问题:MongoDB基础知识 ·MongoDB支持哪些平台? ·MongoDB作为托管服务提供吗? ·集合(collection)与表(table)有何不同? ·如何创建数据库(database) ...

随机推荐

  1. 关于ThinkPHP在BAE上URL的rewrite问题

    在BAE上若想用ThinkPHP的那一套URL路由方式,必须在BAE上rewrite一下,之前我就直接用了不过是403错误,rewrite方式如下: 把你在BAE上的文件checkout到本地,在根目 ...

  2. EntityFramework 如何查看执行的 SQL 代码?

    在 VS 调试的时候,如果我们项目中使用的是 EntityFramework,查看 SQL 执行代码就不像 ADO.NET 那样直观了,我们需要设置下,可以参考下: How can I log the ...

  3. 开启SharePoint Server 2013 中的“微博”功能——新闻源

    熟悉SharePoint的朋友在2013之前的版本可以使用社区协作下的记事板.应用程序下的通知,来进行消息的发布,而且更有这两者的完美结合体讨论板,可供使用着根据站点属性进行添加而对现在的快消息时代, ...

  4. Javascript的无new构建

    看jquery源代码第一步的时候,对于jquery对象的创建就看的云里雾里,琢磨半天终于有点感觉了,在此记录下 第一种方式: var A = function(){ return A.prototyp ...

  5. Oracle软件安装目录满的清理方法

    这是Oracle数据库日常运维中很常见的一个场景,安装目录满有时不光会导致无法记录最新数据库的日志信息,导致遇到问题无法查到最新的日志信息,还会引发一些奇怪的问题. 所以日常巡检要保证Oracle的安 ...

  6. Front End Developer Questions 前端开发人员问题(二)

    问题来源:http://markyun.github.io/2015/Front-end-Developer-Questions/ 二.CSS 1.介绍一下标准的CSS的盒子模型?与低版本IE的盒子模 ...

  7. T-SQL CROSS APPLY、MERGE

    写在前面 刚才看项目里一个存储过程,也是好长时间没有使用Sql Server2008了,好多写法和函数感觉到陌生,这就遇到了CROSS APPLY 和MERGE的语法,两者之前完全没接触过. 所以专门 ...

  8. 我有几个NUMA节点

    在SQL Server交流会,经常被问到的一个问题,SQL Server在几个NUMA节点上运行.因此,在今天的文章里,我想向你展示下几个方法和技术,找出你的SQL Server有几个NUMA节点. ...

  9. SQL SERVER2012附加 (PS:开始试过sql2012直接附加失败)

    Northwind 示例数据库下载:  NORTHWND.MDF   (PS:开始试过sql2012直接附加失败) 新建查询-执行下面代码 USE [master] GO CREATE DATABAS ...

  10. Sublime Text使用配置介绍

    这篇文章很多内容都是来源自网络,发布这里当作自己留个底,以后不用到处去找 对于文本编辑器,我用过notepad2.notepad++.Editplus.UltraEdit.Vim.TextPad,都没 ...