MongoDB 环境安装

MongoDB 下载

可以在MongoDB官网下载该安装包,地址为: http://www.mongodb.org/downloads MonggoDB支持以下平台:

  • OS X 32-bit
  • OS X 64-bit
  • Linux 32-bit
  • Linux 64-bit
  • Windows 32-bit
  • Windows 64-bit
  • Solaris i86pc
  • Solaris 64

MongoDB GUI可视化工具

Robomongo 0.9.0-RC4

下载地址:https://robomongo.org/

百度云链接:http://pan.baidu.com/s/1c1Vj6nQ 密码:gijn

安装MongoDB

https://docs.mongodb.com/getting-started/shell/installation/

安装 MongoDB Linux 社区版本

https://docs.mongodb.com/getting-started/shell/tutorial/install-on-linux/

1. 使用包管理系统导入公钥:

Ubuntu软件包管理工具(即dpkg和apt)通过要求分销商签订包GPG密钥确保方案的一致性和真实性。使用以下命令来导入MongoDB公共GPG密钥:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

2. 创建MongoDB清单文件:

Ubuntu 12.04

echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Ubuntu 14.04

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Ubuntu 16.04

echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

3. 重新加载本地包数据库

  • 使用以下命令来重新加载本地包数据库:
sudo apt-get update

执行结果部分截图:

Ign http://repo.mongodb.org trusty/mongodb-org/3.2 InRelease            
Get:1 http://repo.mongodb.org trusty/mongodb-org/3.2 Release.gpg [801 B]
Get:2 http://repo.mongodb.org trusty/mongodb-org/3.2 Release [3,462 B]
Get:3 http://repo.mongodb.org trusty/mongodb-org/3.2/multiverse amd64 Packages [7,908 B]
Get:4 http://repo.mongodb.org trusty/mongodb-org/3.2/multiverse i386 Packages [29 B]
Ign http://repo.mongodb.org trusty/mongodb-org/3.2/multiverse Translation-en_US
Ign http://repo.mongodb.org trusty/mongodb-org/3.2/multiverse Translation-en

安装时可以安装MongoDB的最新稳定版本或者一个指定的MongoDB版本。

  • 安装最新的MongoDB稳定的版本,使用以下命令:
sudo apt-get install -y mongodb-org
  • 指定MongoDB版本,分别指定每个组件包的包名和版本号,如下例所示,安装MongoDB的3.0.4版本:
sudo apt-get install -y mongodb-org=3.0.4 mongodb-org-server=3.0.4 mongodb-org-shell=3.0.4 mongodb-org-mongos=3.0.4 mongodb-org-tools=3.0.4

虽然可以指定任何可用的MongoDB企业版本的,但是当有新版本发布时apt-get将升级到新版本的程序包。为了防止意外升级,要锁定程序包。

锁定MongoDB的当前安装版本,使用以下命令:

echo "mongodb-org hold" | sudo dpkg --set-selections 
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections 
echo "mongodb-org-tools hold" | sudo dpkg --set-selections

针对不支持Ubuntu16.04的Mongo Service

The first thing is to create a systemd unit file which defines a unit in this case our MongoDB service. Systemd unit configuration files are stored in /etc/systemd/system directory and we shall create the mongodb.service file under it, use your editor of choice as follows:

sudo vi /lib/systemd/system/mongod.service

Then add the following line into that file:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

说明:

--quiet

mongod运行在安静模式,限制输出量

查看配置文件:

vi /etc/mongod.conf

MongoDB实例默认:

将其数据文件存储在/var/lib/mongodb目录;

其日志文件在/var/log/mongodb目录,并使用当前用户运行mongod;

如果你改变用户运行MongoDB进程,您必须修改/var/lib/mongodb/var/log/mongodb目录的访问控制权限

sudo chown -R mongodb:mongodb /var/lib/mongodb/
sudo chown -R mongodb:mongodb /var/log/mongodb/

现在可以开始我们的mongod的服务,运行下面的命令:

sudo systemctl start mongod

或者

sudo service mongod start
python@ubuntu:~$ sudo service mongod start
Warning: mongod.service changed on disk. Run 'systemctl daemon-reload' to reload units.
python@ubuntu:~$ systemctl daemon-reload

要检查服务的状态,执行以下命令:

sudo systemctl status mongod
Warning: mongod.service changed on disk. Run 'systemctl daemon-reload' to reload units.
python@ubuntu:~$ systemctl daemon-reload

设置开机启动

sudo systemctl enable mongod

取消开机启动

sudo systemctl disable mongod

日常MongoDB管理

启动MongoDB:

可以使用以下命令启动mongod进程:

sudo service mongod start

验证MongoDB启动成功:

可以通过检查日志文件/var/log/mongodb/mongod.log的内容来验证是否成功启动。

[initandlisten] waiting for connections on port <port>

配置在/etc/mongod.conf默认端口号 27017【考点】 Mysql呢?3306

停止MongoDB

在需要时,使用以下命令停止mongod进程:

sudo service mongod stop

重启MongoDB:

可以通过以下命令重启mongod进程:

sudo service mongod restart

以通过观察输出在/var/log/mongo/mongod.log日志中的错误和重要信息信息判断进程状态。

通过shell连接MongoDB服务

要使用MongoDB 运行以下命令

mongo

这将会连接到运行的 mongod 实例。

MongoDB 帮助

要获得 MongoDB客户端的命令列表,需要输入命令db.help()。这会列出命令如下列表所示:

MongoDB 统计信息

要获得关于MongoDB的服务器统计,需要在MongoDB客户端键入命令db.stats()。这将显示数据库名称,收集和数据库中的文档信息。输出的命令如下所示

下面来介绍一下各个参数

"db" : "test" ,表示当前是针对"test"这个数据库的描述。想要查看其他数据库,可以先运行$ use datbasename
"collections" : 3,表示当前数据库有多少个collections.可以通过运行show collections查看当前数据库具体有哪些collection.
"objects" : 267,表示当前数据库所有collection总共有多少行数据。显示的数据是一个估计值,并不是非常精确。
"avgObjSize" : 623.2322097378277,表示每行数据是大小,也是估计值,单位是bytes
"dataSize" : 16640,表示当前数据库所有数据的总大小,不是指占有磁盘大小。单位是bytes
"storageSize" : 110592,表示当前数据库占有磁盘大小,单位是bytes,因为mongodb有预分配空间机制,为了防止当有大量数据插入时对磁盘的压力,因此会事先多分配磁盘空间。
"numExtents" : 0,没有什么真实意义
"indexes" : 2 ,表示system.indexes表数据行数。
"indexSize" : 53248,表示索引占有磁盘大小。单位是bytes