设为首页 收藏本站
查看: 1418|回复: 0

[经验分享] mongodb在Windows安装配置及遇到的问题、java连接测试

[复制链接]

尚未签到

发表于 2017-12-16 12:41:41 | 显示全部楼层 |阅读模式
  一、安装
  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
DSC0000.png

  二、配置
  1、创建D:/mongodb/data/db目录(方便后面启动)
DSC0001.png

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

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

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

  三、启动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.
DSC0005.png

  默认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"
DSC0006.png

  (此方法不适合我)以管理员身份启动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成功
DSC0007.png

  注意要用管理员方式启动命令行
  这样在服务里面就有MongoDB的服务了
  启动MongoDB:net start MongoDB
DSC0008.png

  停止MongoDB:net stop MongoDB
  删除服务命令:sc delete MongoDB
DSC0009.png

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

  解决方法:
  (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个问题)
DSC00011.png

  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动态库解决了问题
DSC00012.png

  3、首次启动后,第二次启动
  访问服务器地址:http://127.0.0.1:28017 ,若无法访问,说明服务实际上没有真正的启动。
  根据错误日志可以判断出现此问题的原因,一般原因是mongodb非法停止。
  解决此问题方案:在mongodb安装目录下有个.lock文件,删除此文件即可
DSC00013.png

  五、相关资料
  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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-424688-1-1.html 上篇帖子: mongodb第一篇文章~关于用户认证的那点事 下篇帖子: 使用 MongoDB 的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表