zoukankan      html  css  js  c++  java
  • 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());  

            }  

        }  

     

  • 相关阅读:
    cookie包含中文导致的问题
    Mysql date_sub函数使用
    mysql 忘记root密码修改方法
    你所知道的Java单例模式并不是单例模式
    cookie与sessionID之间的关系实验
    Cookie实例,理解cookie
    spring项目中使用定时任务
    Jsp开发自定义标签,自定义标签将字符串转成指定的时间格式显示
    Java 生成压缩包,ZipOutputStream的使用
    Spring的web应用启动加载数据字典方法
  • 原文地址:https://www.cnblogs.com/yulia/p/6700513.html
Copyright © 2011-2022 走看看