一、安装
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());
}
}
}