MongoDB-常見問題

來源:互聯網
上載者:User

標籤:

前言

       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)

 

MongoDB-常見問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.