MongoDB 是跨平台的,支持在多个系统上安装。
windows上安装MongoDB
可以从http://www.mongodb.org/downloads链接下载MongoDB。下载时,注意选择适合自己系统的版本。
查看windows版本
可以通过
wmic os get osarchitecture
命令查看windows版本。Kevin@QIKEGU C:\Users\Kevin > wmic os get osarchitecture OSArchitecture 64-bit
下载完成后,双击下载的msi文件,按提示完成安装。
MongoDB需要一个文件夹来存储数据文件,默认位置是c:\data\db
,需先创建此目录。
也可以在执行MongoDB服务端程序时,指定数据文件存储目录:
> mongod.exe --dbpath "d:\mongodb\data"
运行MongoDB,先启动服务端程序,然后使用客户端连接服务端。
运行客户端:
> mongo.exe
Linux(CentOS 7)上安装MongoDB
1. 配置包管理系统(yum)
创建yum配置文件,以便可以直接使用yum安装MongoDB:
$ sudo vi /etc/yum.repos.d/mongodb-org.repo
将最新稳定版本的存储库信息添加到文件中,可访问官网文档获取最新稳定版本信息:
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
保存并关闭文件。
2. 安装MongoDB包
要安装最新稳定版本的MongoDB,执行以下命令:
sudo yum install -y mongodb-org
要安装特定版本的MongoDB,请分别指定每个组件包,并将版本号附加到包名中,如下例所示:
sudo yum install -y mongodb-org-4.0.10 mongodb-org-server-4.0.10 mongodb-org-shell-4.0.10 mongodb-org-mongos-4.0.10 mongodb-org-tools-4.0.10
可以指定MongoDB的任何可用版本。不过,当新版本可用时,yum将升级这些包。为了防止意外升级,可锁定软件包。要锁定一个包,请将以下exclude
指令添加到/etc/yum.conf
文件中:
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
3. 运行MongoDB
使用systemctl
命令启动MongoDB服务:
$ sudo systemctl start mongod
虽然在本教程中我们不会使用,但是你也可以使用reload
和stop
命令更改MongoDB服务的状态。
reload
命令要求mongod
进程读取配置文件/etc/mongod
,并在不需要重新启动的情况下应用任何更改。
$ sudo systemctl reload mongod
stop
命令停止mongod
进程。
$ sudo systemctl stop mongod
systemctl
命令在执行start
命令后没有提供结果,但是我们可以通过使用tail
命令,查看·mongod.log·文件的末尾,来检查服务是否启动:
$ sudo tail /var/log/mongodb/mongod.log
输出
. . .
[initandlisten] waiting for connections on port 27017
输出waiting for a connection
,MongoDB已经成功启动,可以使用MongoDB Shell访问数据库服务器:
$ mongo
要了解如何在shell中与MongoDB交互,可以查看db.help()
方法的输出,该方法打印了一个方法列表。
> db.help()
输出:
DB methods:
db.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ]
db.auth(username, password)
db.cloneDatabase(fromhost)
db.commandHelp(name) returns the help for the command
db.copyDatabase(fromdb, todb, fromhost)
db.createCollection(name, { size : ..., capped : ..., max : ... } )
db.createUser(userDocument)
db.currentOp() displays currently executing operations in the db
db.dropDatabase()
. . .