mongodb在Windows安装配置及遇到的问题、java连接测试

一、安装

1、访问mongodb的官网http://www.mongodb.org/downloads下载64bit的包,我下载的是mongodb-win32-x86_64-2008plus-ssl-3.4.1-signed.msi

2、创建D:/mongodb

3、点击软件包mongodb-win32-x86_64-2008plus-ssl-3.4.1-signed.msi,选择custom模式,自定义选择路径安装到D:/mongodb

    

 

二、配置

 1、创建D:/mongodb/data/db目录(方便后面启动)

    

 

2、创建D:/mongodb/logs,并在D:mongodblogs下创建mongodb.log(方便后面启动,命令里面的路径不能输错)

    

 

若命令里输错路径,启动时提示:

    

 

3、为了启动mongodb方便,将mongod.exe路径加入环境变量,电脑->属性->高级系统设置->环境变量,在path里加入路径。把D:mongodbin;加到系统环境变量的path

    

 

三、启动mongodb服务方法

1、打开命令行输入命令

cd到mongodb安装目录的bin下,执行mongod命令

mongod --dbpath "d://mongodb//data//db" --logpath "d://mongodb//logs//mongodb.log" --logappend

解析:mongod

      --dbpath 命令是创建数据库文件的存放位置,启动mongodb服务时需要先确定数据库文件存放的位置,否则系统不会自动创建,启动会不成功。

  --logpath 表示日志文件存放的路径    

      --logappend  表示以追加的方式写日志文件

 

打开浏览器上,输入localhost:27017,会看到打印It looks like you are trying to access MongoDB over HTTP on the native driver port.

 

默认27017端口,可以通过--port 命令来修改端口,如:mongod --port 9888 "d:\mongodb\data"

 

2、以服务方式启动

每次启动服务都需要输入以上命令,为了方便,将启动数据库写成window服务的方式。

 以管理员身份启动cmd,输入命令:

mongod --dbpath "D:mongodbdatadb" --logpath "D:mongodblogsmongodb.log" --install --serviceName "MongoDB"

(此方法不适合我)以管理员身份启动cmd后 ,输入命令:

sc create mongodb binPath= "d:mongodbinmongod.exe --service --dbpath D:mongodbdatadb --logpath=d:mongodblogsmongodb.log --logappend --directoryperdb"

成功标记为提示:CreateService成功

 

注意要用管理员方式启动命令行

这样在服务里面就有MongoDB的服务了

 

启动MongoDB:net start MongoDB

停止MongoDB:net stop MongoDB

删除服务命令:sc delete MongoDB

 

四、遇到的问题

1、在三、第一种启动方式,遇到第一个问题,提示"无法启动此程序,因为计算机丢失api-ms-win-crt-runtime-l1-1-0.dll":

 

解决方法:

(1)根据百度提示框的内容:提示无法启动此程序,因为计算机丢失api-ms-win-crt-runtime-l1-1-0.dll,看到脚本之家有人也遇到同样的问题,脚本之家提供了对应的dll

       dll访问链接:http://www.jb51.net/dll/api-ms-win-crt-runtime-l1-1-0.dll.html

(2)下载好api-ms-win-crt-runtime-l1-1-0.dll后,按照脚本之家上面的提示,Windows XP/WIN7/win10系统(64位系统对应64位dll文件,32位系统对应32位dll文件),将api-ms-win-crt-runtime-l1-1-0.dll复制到C:WindowsSystem32目录

(3)打开"开始-运行-输入regsvr32 api-ms-win-crt-runtime-l1-1-0.dll",回车即可解决(很多人到了这步已经解决了,但我的电脑问题较多,此时提示"无法定位程序输入点ucrtbase.terminate于动态链接库",接入第2个问题)

 

2、 虽然在第一步骤没解决我电脑的问题,但也尝试mongodb使用命令启动,同样提示"无法定位程序输入点ucrtbase.terminate于动态链接库api-ms-win-crt-runtime-l1-1-0.dll上"

百度了一个解决方式:http://jingyan.baidu.com/article/d169e1865acd58436611d83a.html

 

首先确定Windows7系统的具体版本。同时按下win+R,在命令行中输入:winver.exe,会显示你的Windows系统版本,如果系统版本为Windows 7 with SP1(即如图所示:7601:Service Pack 1),那就方便多了,可直接安装MSVisualC++ 2015动态库,安装包下载链接如下:

下载地址:http://pan.baidu.com/s/1nu7PKLz

注意:32位系统请下载x86安装包,64位系统请下载x64安装包,下载后安装即可解决问题。

系统版本为7600的用户请按步骤2进行操作。

 

因为我电脑是64位,直接安装MSVisualC++ 2015动态库解决了问题

3、首次启动后,第二次启动

访问服务器地址:http://127.0.0.1:28017 ,若无法访问,说明服务实际上没有真正的启动。

根据错误日志可以判断出现此问题的原因,一般原因是mongodb非法停止。

解决此问题方案:在mongodb安装目录下有个.lock文件,删除此文件即可

 

五、相关资料

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的

1、百度百科:http://baike.baidu.com/link?url=FmRXWVTuajikY07ffgoalCUx6j7cMqC99Xl7jJdI-8f7q6t5miEN3zFbKk3PTyv87D16i7vDhrpFgl4nvkACy_

2、MongoDB 官网地址:https://www.mongodb.com/

3、MongoDB 官方英文文档:https://docs.mongodb.com/manual/
4、MongoDB 各平台下载地址:https://www.mongodb.com/download-center#community

六、java连接测试

注意引用mongodb的驱动包,并且编码为UTF-8

以下代码来源于http://blog.csdn.net/w171203757/article/details/46946771

代码:

 

package test1;  

import java.util.Date;  

import java.util.Set;  

import com.mongodb.BasicDBObject;  

import com.mongodb.DB;  

import com.mongodb.DBCollection;  

import com.mongodb.DBCursor;  

import com.mongodb.Mongo;  

public class ConnectionTest {  

/** 

     * @param args 

     */  

public static void main(String[] args) {  

        Mongo mongo = new Mongo("localhost", 27017);  

// 连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立  

        DB db = mongo.getDB("mytest");  

// 遍历所有集合的名字  

        Set<String> colls = db.getCollectionNames();  

        System.out.println("所有集合:");  

for (String s : colls) {  

            System.out.println(s);  

        }  

        System.out.println("测试开始");  

// 从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立  

        DBCollection collection = db.getCollection("yourCollection");  

        search(collection);  

        System.out.println("Done");  

    }  

public static void insert(DBCollection collection){  

        System.out.println("插入");  

// 使用BasicDBObject对象创建一个mongodb的document,并给予赋值。  

        BasicDBObject document = new BasicDBObject();  

        document.put("id", 1001);  

        document.put("msg", "hello world mongoDB in Java");  

// 将新建立的document保存到collection中去  

        collection.insert(document);  

    }  

public static void delete(DBCollection collection){  

        System.out.println("删除");  

        BasicDBObject query = new BasicDBObject();  

        query.put("id", 1001);  

        collection.remove(query);  

    }  

public static void update(DBCollection collection){  

        System.out.println("更新");  

        BasicDBObject update = new BasicDBObject();  

        update.put("id", 1002);  

        update.put("time",new Date());  

        collection.update(new BasicDBObject().append("id", 1001), update);  

    }  

public static void search(DBCollection collection){  

        System.out.println("查询");  

// 创建要查询的document  

        BasicDBObject searchQuery = new BasicDBObject();  

        searchQuery.put("id", 1001);  

// 使用collection的find方法查找document  

        DBCursor cursor = collection.find();  

// 循环输出结果  

while (cursor.hasNext()) {  

            System.out.println(cursor.next());  

        }  

    }  

 

原文地址:https://www.cnblogs.com/yulia/p/6700513.html