NodeJS鏈接MongoDB數據庫時報錯

今天第一次嘗試鏈接MongoDB數據庫,具體步驟也很簡單。node

首先,經過NodeJS運行環境安裝MongoDB包,進入要安裝的目錄,執行語句mongodb

npm install mongodb

安裝成功後,經過以下語句測試與數據庫創建鏈接幾關閉數據庫數據庫

var mongo = require('mongodb');
var host = "localhost";
var port = mongo.Connection.DEFAULT_PORT;
//建立MongoDB數據庫所在服務器的Server對象
var server = new mongo.Server(host, port, {auto_reconnect:true});
//建立MongoDB數據庫
var db = new mongo.Db('node-mongo-example', server, {saft:true});
//數據庫鏈接操做
db.open(function(err, db){
    if(err) {
        console.log('鏈接數據庫發生錯誤');
        throw err;}
    else{
        console.log("成功創建數據庫鏈接");
        db.close();
    }
});
db.on('close',function(err,db){
    if (err) {throw err;}
    else{
        console.log("成功關閉數據庫");
    }
});

在node的運行環境中運行以上代碼所在文件,出現以下所示錯誤:npm

mongodb數據庫的默認端口爲27017,因此我把port改爲默認的27017,運行文件後,仍然報錯,以下所示:服務器

很顯然,錯誤自己不是端口號屬性問題,而是沒法鏈接默認的MongoDB數據庫服務,最後終於明白形成以上錯誤的緣由是沒有運行數據庫服務器的可執行文件。測試

具體啓動方法爲:ui

在運行環境中進入MongoDB的安裝位置,進入bin文件夾下,運行以下代碼:this

D:\Mongodb\bin>mongod --dbpath D:\Mongodb\data  

通常狀況下,上面的node.js代碼就能夠正常運行了spa

但在最初嘗試時,我還遇到過一個問題,就是啓動上面的數據庫服務器時,在沒法啓動,在反饋信息中有一條錯誤爲:日誌

2015-12-13T00:49:12.195+0600 I STORAGE  [initandlisten] exception in  initAndListen: 28663 Cannot start server. The default storage engine 'wiredTiger' is not available with this build of mongod. Please specify a different storage engine explicitly, e.g. --storageEngine=mmapv1., terminating 2015-12-13T00:49:12.195+0600 I CONTROL [initandlisten] dbexit: rc: 100

查找資料發現,這是因爲版本衝突形成存儲路徑的混淆,具體解決方案爲在bin目錄下運行以下語句:

D:\MongoDB\bin mongod --storageEngine=mmapv1 --dbpath [your-path]

再啓動數據庫服務就成功了。

能夠經過訪問http:\\localhost:27017,能夠看到以下提示:

It looks like you are trying to access MongoDB over HTTP on the native driver port.

就能夠啓動成功了!

參考資料:http://chenzhou123520.iteye.com/blog/1582174

 

啓動mongoDB時出現的報錯:

一、Unable to connect MongoDB, please check your configurations. MongoDB said:Failed to connect to: 127.0.0.1:27017: 因爲目標計算機積極拒絕,沒法鏈接查看MongoDB故障old lock file,terminating的解決

 

 查看mongo日誌文件獲得祥細錯誤
exception in initAndListen: 12596 old lock file, terminating
 
引起緣由:
關閉Mongodb前,未釋放鎖,致使重啓時失敗
 
解決方案:
刪除data目錄下的mongodb.lock文件,重啓便可
 
注意事項: 用mongodump備份數據庫時,不能使用fsync和鎖,不然dump程序沒法鏈接數據庫 服務器,其餘狀況下使用fsync和鎖,須要注意操做可能會執行較長時間
相關文章
相關標籤/搜索