前言

       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. (十五)WebGIS中平移功能的设计和实现

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 这一章我们将详细讲解WebGIS工具栏中另一个基础工具——平 ...

  2. Node.js连接Mysql,并把连接集成进Express中间件中

    引言 在node.js连接mysql的过程,我们通常有两种连接方法,普通连接和连接池. 这两种方法较为常见,当我们使用express框架时还会选择使用中间express-myconnection,可以 ...

  3. 用MVC做支付宝手机网页支付问题

    支付宝支付接口手机网页支付 从官网扒下来的demo阿里做得还是相当不错的,只要参数改正确了基本上都是能跑通,WebForm的没什么大问题,这次要讲的主要是几个要注意的问题,因为是用MVC来做. 1.要 ...

  4. httphandler和httpmodule的区别

    ASP.Net处理Http Request时,使用Pipeline(管道)方式,由各个HttpModule对请求进行处理,然后到达 HttpHandler,HttpHandler处理完之后,仍经过Pi ...

  5. c++局部变量经典举例

    局部变量: 在函数内部声明的变量为局部变量,局部变量的意思即该变量只存活在该函数中,假如该函数调用结束,那么该变量的寿命也结束了. 举例: #include<iostream> using ...

  6. 关于replace()方法中第二个参数的转义问题

    如果你想通过Javascript代码在网页中呈现 \ 字符,则在JS代码中你必须输入两个反斜杠 \\,否则会报错.比如: var a = "\"; alert(a); //chro ...

  7. DirectShow Filter的开发实践

    一.介绍 摄像头图像采集处理在业界有着多种成熟的方案.从老的DirectShow.Grabber技术,到新的Windows Media Foundation框架,网络上都有着丰富的参考资料.OpenC ...

  8. C# EPL USB 指令打印

    private void btnPrinter_Click(object sender, EventArgs e) { #region ESC 热敏图像点阵像素点读取打印 //Bitmap bitma ...

  9. mvc实现上传视频预览

    上个项目中用到了上传视频,本来打算用百度的webuploader做的,但是webuploader可能有个毛病就是不能上传太大的东西. 于是乎,只能换个方法做了啊,看了半天最终决定用传统的uploade ...

  10. 客户端调用 WCF 的几种方式

    转载网络代码.版权归原作者所有..... 客户端调用WCF的几种常用的方式: 1普通调用 var factory = new DataContent.ServiceReference1.Custome ...