yuandan 发表于 2017-12-16 12:41:41

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:\mongodb\logs下创建mongodb.log(方便后面启动,命令里面的路径不能输错)

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

  3、为了启动mongodb方便,将mongod.exe路径加入环境变量,电脑->属性->高级系统设置->环境变量,在path里加入路径。把D:\mongodb\bin;加到系统环境变量的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:\mongodb\data\db" --logpath "D:\mongodb\logs\mongodb.log" --install --serviceName "MongoDB"

  (此方法不适合我)以管理员身份启动cmd后 ,输入命令:
  sc create mongodb binPath= "d:\mongodb\bin\mongod.exe --service --dbpath D:\mongodb\data\db --logpath=d:\mongodb\logs\mongodb.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.iyunv.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:\Windows\System32目录
  (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());
  }
  }
  }
页: [1]
查看完整版本: mongodb在Windows安装配置及遇到的问题、java连接测试