MongoDB启动时出现errno:111 Connection refused错误的解决

问题描述: 

MongoDB启动时报下列错误

[root@MongoDB ~]# mongo
MongoDB shell version: 2.6.1
connecting to: test
2014-05-25T18:47:24.021+0800 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2014-05-25T18:47:24.022+0800 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed

原因分析:造成此错误的原因可能是因为,保存数据库目录所在的物理存储区域已经没有空间了,所以导致数据库故障。数据的存放目录在在启动mongod时自己指定的  --dbpath /home/mongo_db

问题的解决方法:

1、要想弄清楚出现该问题的原因,必须首先了解,mongo的数据存储机制:

     详见链接:http://blog.csdn.net/djy37010/article/details/68942379

2、在了解完mongo的数据存储机制后,就要针对上述问题,找出解决办法:

    开发环境有大量测试的 增加/删除/修改 操作, 长期以来会导致数据文件非常大,但 实际存储数据并不是很多.

    进入mongo,通过db.stats( )即可查看各个数据项所占用的空间大小。

    

     如下图所示就是所占用的磁盘空间:

     

    这些文件会占用大量的磁盘空间,而实际的数据实际上是很少的(注,该文件夹的数据不能随便删除,否则会导致数据库中的数据异常)。

    解决办法:

    注,无效的解决办法:删除许多开发测试数据后(db.collection.remove()),数据文件显然是不会变小的,至于为什么,请阅读:mongo的数据存储机制(见上).

    (1)、dump到本机&restore:

     (mongo的安装路径)/bin/mongodump --db dbname --host 127.0.0.1(本机) --port=27017

     dump的结果是把数据dump到本地:/bin/dump/dbname/目录下。

     如下图所示:

                

      关闭mongodb

      cd /data/mongodb/(启动mongod时利用--dbpath所指定的路径,就是为了存放数据库的各种数据)

      rm db_name.*

      启动mongodb;启动后登陆mongo 确认原来的mongo库已被删除(正常情况下show dbs已经看不到原来的数据库)

      use db_name;

      (mongo的安装路径)/bin/mongorestore --db dbname --host=127.0.0.1 --port=27017 dump/dbname/

       重启mongod:nohup ~/.jumbo/bin/mongod --dbpath — > ~/.jumbo/bin/log & 

       登录mongo:mongo --host=  --port=--  

    (2)、远程dump&restore:

     (mongo的安装路径)/bin/mongodump --db dbname --host=--- (需要被dump的数据所在的主机的ip) --port=27017

 

     dump的结果是把数据从远程主机dump到本地:/bin/dump/dbname/目录下。

 

     如下图所示:

 

                

 

      关闭mongodb

 

      cd /data/mongodb/(启动mongod时利用--dbpath所指定的路径,就是为了存放数据库的各种数据)

 

      rm db_name.*

 

      启动mongod;启动后登陆mongo 确认原来的mongo库已被删除(正常情况下show dbs已经看不到原来的数据库)

 

      use db_name;

 

      (mongo的安装路径)/bin/mongorestore --db dbname --host=127.0.0.1 --port=27017 dump/dbname/

     

       重启mongod:nohup ~/.jumbo/bin/mongod --dbpath — > ~/.jumbo/bin/log & 

 

       登录mongo:mongo --host=  --port=--  



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值