zoukankan      html  css  js  c++  java
  • NodeJS连接MongoDB数据库时报错

    今天第一次尝试连接MongoDB数据库,具体步骤也很简单。

    首先,通过NodeJS运行环境安装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的运行环境中运行以上代码所在文件,出现如下所示错误:

    mongodb数据库的默认端口为27017,所以我把port改成默认的27017,运行文件后,仍然报错,如下所示:

    很显然,错误本身不是端口号属性问题,而是无法连接默认的MongoDB数据库服务,最后终于明白造成以上错误的原因是没有运行数据库服务器的可执行文件。

    具体启动方法为:

    在运行环境中进入MongoDB的安装位置,进入bin文件夹下,运行如下代码:

    D:Mongodbin>mongod --dbpath D:Mongodbdata  

    一般情况下,上面的node.js代码就可以正常运行了

    但在最初尝试时,我还遇到过一个问题,就是启动上面的数据库服务器时,在无法启动,在反馈信息中有一条错误为:

    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:MongoDBin 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时出现的报错:

    1、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和锁,需要注意操作可能会执行较长时间

                  

  • 相关阅读:
    转:C++中Static作用和使用方法
    转:C/C++中,空数组、空类、类中空数组的解析及其作用
    转:c++类实例在内存中的分配
    转:union 联合体(共用体)
    转:内存对齐与补齐 字节对齐与结构体大小
    转:c++内存分配
    转:代码重构
    转:设计模式六大原则(3):依赖倒置原则
    读书
    转:Teach Yourself Programming in Ten Years——用十年教会自己编程
  • 原文地址:https://www.cnblogs.com/pp-cat/p/5489676.html
Copyright © 2011-2022 走看看