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=--  



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章