# 1.4.2 MongoDB的安裝
MongoDB 是由 C++ 語言編寫的非關系型數據庫,是一個基于分布式文件存儲的開源數據庫系統,其內容存儲形式類似 Json 對象,它的字段值可以包含其他文檔,數組及文檔數組,非常靈活。
MongoDB 支持多種平臺,包括 Windows、Linux、Mac OS、Solaris 等,在其官方網站均可找到對應的安裝包,[https://www.mongodb.com/download-center](https://www.mongodb.com/download-center)
本節我們來看下它的安裝過程。
## 1. 相關鏈接 {#1-相關鏈接}
* 官方網站:[https://www.mongodb.com](https://www.mongodb.com/)
* 官方文檔:[https://docs.mongodb.com](https://docs.mongodb.com/)
* GitHub:[https://github.com/mongodb](https://github.com/mongodb)
* 中文教程:[http://www.runoob.com/mongodb/mongodb-tutorial.html](http://www.runoob.com/mongodb/mongodb-tutorial.html)
## 2. Windows下的安裝 {#2-windows下的安裝}
目前最新版本的MongoDB,不用這么麻煩的配置服務和日志了
直接在官網下載安裝包即可,鏈接為:[https://www.mongodb.com/download-center\#community](https://www.mongodb.com/download-center#community)

直接點擊 Download 下載 msi 安裝包即可。
下載完成之后雙擊開始安裝,指定 MongoDB 的安裝路徑,例如在此處我指定安裝路徑為 C:\MongoDB\Server\3.4,當然路徑可以自行選擇

點擊下一步執行安裝即可。
安裝成功之后,進入 MongoDB 的安裝目錄,在此處所在路徑是 C:\MongoDB\Server\3.4,在 bin 目錄下新建同級目錄 data

然后進入 data 文件夾新建子文件夾 db,作為數據目錄存儲的文件夾,之后打開命令行,進入 MongoDB 安裝目錄的 bin 目錄下,運行 MongoDB 服務:
```text
mongod --dbpath "C:\MongoDB\Server\3.4\data\db"
```
請記得將此處的路徑替換成你的主機 MongoDB 安裝路徑。
如果想一直使用 MongoDB 就不能關閉此命令行,如果意外關閉或重啟 MongoDB 服務就不能使用了,這顯然不是我們想要的,所以接下來我們還需將 MongoDB 配置成系統服務。
首先我們要以管理員模式運行命令行,注意此處一定要是管理員模式運行,否則可能配置失敗,如圖 1-34 所示:

圖 1-34 管理員模式
開始菜單搜索 cmd,找到命令行,然后右鍵以管理員身份運行即可。
隨后新建一個日志文件,在 bin 目錄同級目錄新建 logs 文件夾,進入之后新建一個 mongodb.log 文件,用于保存 MongoDB 運行的日志,如圖 1-35 所示。

圖 1-35 新建 mongodb.log 結果
在命令行下輸入如下內容:
```text
mongod --bind_ip 0.0.0.0 --logpath "C:\MongoDB\Server\3.4\logs\mongodb.log" --logappend --dbpath "C:\MongoDB\Server\3.4\data\db" --port 27017 --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install
```
這里的意思是綁定 IP 為 0.0.0.0,即任意 IP 均可訪問,指定日志路徑、數據庫路徑、端口,指定服務名稱,注意這里依然需要把路徑替換成你的 MongoDB 安裝路徑,運行此命令后即可安裝服務。
如果沒有出現錯誤提示,則證明 MongoDB 服務已經安裝成功。
可以設置它的開機啟動方式,如自動啟動或手動啟動等。這樣我們就可以非常方便地管理 MongoDB 服務了。
啟動服務之后我們在命令行下就可以利用 mongo 命令進入 MongoDB 命令交互環境了
這樣 Windows 下 MongoDB 配置就完成了。
## 3. Linux下的安裝 {#3-linux下的安裝}
在這里以 MongoDB 3.4 為例說明 MongoDB 的安裝過程。
### Ubuntu {#ubuntu}
首先導入 MongoDB 的 GPG Key:
```text
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
```
隨后創建 apt-get 源列表,各個系統版本對應的命令如下:
* Ubuntu 12.04
```text
echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
```
* Ubuntu 14.04
```text
echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
```
* Ubuntu 16.04
```text
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
```
隨后更新 apt-get 源:
```text
sudo apt-get update
```
之后安裝 MongoDB 即可:
```text
sudo apt-get install -y mongodb-org
```
安裝完成之后運行 MongoDB,命令如下:
```text
mongod --port 27017 --dbpath /data/db
```
運行命令之后 MongoDB 就在 27017 端口上運行了,數據文件會保存在 /data/db 路徑下。
一般我們在 Linux 上配置 MongoDB 都是為了遠程連接使用的,所以在這里還需要配置一下 MongoDB 的遠程連接和用戶名密碼:
接著我們進入到 MongoDB 命令行:
```text
mongo --port 27017
```
現在我們就已經進入到 MongoDB 的命令行交互模式下了,在此模式下運行如下命令:
```text
>use admin
switched to db admin
>db.createUser({user: 'admin', pwd: 'admin123', roles: [{role: 'root', db: 'admin'}]})
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
```
這樣我們就創建了一個用戶名為 admin,密碼為 admin123 的用戶,賦予最高權限。
隨后需要修改 MongoDB 的配置文件,
執行如下命令:
```text
sudo vi /etc/mongod.conf
```
修改 net 部分為:
```text
net:
port: 27017
bindIp: 0.0.0.0
```
這樣配置后 MongoDB 可被遠程訪問。
另外還需要添加如下權限認證配置,直接添加如下內容到配置文件:
```text
security:
authorization: enabled
```
配置完成之后我們需要重新啟動 MongoDB 服務,命令如下:
```text
sudo service mongod restart
```
這樣遠程連接和權限認證就配置完成了。
### CentOS、RedHat {#centos、redhat}
首先添加 MongoDB 源:
```text
sudo vi /etc/yum.repos.d/mongodb-org.repo
```
修改為如下內容保存:
```text
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
```
然后執行 yum 命令安裝:
```text
sudo yum install mongodb-org
```
啟動 MongoDB 服務:
```text
sudo systemctl start mongod
```
停止和重新加載 MongoDB 服務:
```text
sudo systemctl stop mongod
sudo systemctl reload mongod
```
有關遠程連接和認證配置可以參考上文,方式是相同的。
更多 Linux 發行版的 MongoDB 安裝方式可以參考官方文檔:[https://docs.mongodb.com/manual/administration/install-on-linux/](https://docs.mongodb.com/manual/administration/install-on-linux/)。
## 4. Mac下的安裝 {#4-mac下的安裝}
推薦使用 Homebrew 安裝,執行 brew 命令即可:
```text
brew install mongodb
```
然后創建一個新文件夾 /data/db,用于存放 MongoDB 數據。
啟動 MongoDB 服務:
```text
brew services start mongodb
sudo mongod
```
這樣就啟動了 MongoDB 服務。
停止、重啟 MongoDB 服務的命令:
```text
brew services stop mongodb
brew services restart mongodb
```
## 5.使用docker安裝 {#5-可視化工具}
1.查找docker中的mongo
```text
sudo docker search mongo
```
2.拉取鏡像
```text
sudo docker pull mongo:3.6
```
3.查看是否已經下載下來
```text
sudo docker images
```
4.運行mongo鏡像
```text
sudo docker run -p 27917:27017 -e $PWD/db:/data/db -d mongo:3.6
```
5.查看容器啟動情況
```text
sudo docker ps
```
## 6. 可視化工具 {#5-可視化工具}
RoboMongo/Robo 3T,官方網站:[https://robomongo.org/](https://robomongo.org/),下載鏈接:[https://robomongo.org/download](https://robomongo.org/download)。
Studio 3T,官方網站:[https://studio3t.com](https://studio3t.com/),下載鏈接:[https://studio3t.com/download/](https://studio3t.com/download/)。
- 介紹
- 1.開發環境配置
- 1.1 python3的安裝
- 1.1.1 windows下的安裝
- 1.1.2 Linux下的安裝
- 1.1.3 Mac下的安裝
- 1.2 請求庫的安裝
- 1.2.1 requests的安裝
- 1.2.2 selenium的安裝
- 1.2.3 ChromeDriver的安裝
- 1.2.4 GeckoDriver 的安裝
- 1.2.5 PhantomJS的安裝
- 1.2.6 aiohttp的安裝
- 1.3 解析庫的安裝
- 1.3.1 lxml的安裝
- 1.3.2 Beautiful Soup的安裝
- 1.3.3 pyquery的安裝
- 1.3.4 tesserocr的安裝
- 1.4 數據庫的安裝
- 1.4.1 MySQL的安裝
- 1.4.2 MongoDB的安裝
- 1.4.3 Redis的安裝
- 1.5 存儲庫的安裝
- 1.5.1 PyMySQL的安裝
- 1.5.2 PyMongo的安裝
- 1.5.3 redis-py的安裝
- 1.5.4 RedisDump的安裝
- 1.6 Web庫的安裝
- 1.6.1 Flask的安裝
- 1.6.2 Tornado的安裝
- 1.7 App爬取相關庫的安裝
- 1.7.1 Charles的安裝
- 1.7.2 mitmproxy的安裝
- 1.7.3 Appium的安裝
- 1.8 爬蟲框架的安裝
- 1.8.1 pyspider的安裝
- 1.8.2 Scrapy的安裝
- 1.8.3 Scrapy-Splash的安裝
- 1.8.4 ScrapyRedis的安裝
- 1.9 布署相關庫的安裝
- 1.9.1 Docker的安裝
- 1.9.2 Scrapyd的安裝
- 1.9.3 ScrapydClient的安裝
- 1.9.4 ScrapydAPI的安裝
- 1.9.5 Scrapyrt的安裝
- 1.9.6-Gerapy的安裝
- 2.爬蟲基礎
- 2.1 HTTP 基本原理
- 2.1.1 URI和URL
- 2.1.2 超文本
- 2.1.3 HTTP和HTTPS
- 2.1.4 HTTP請求過程
- 2.1.5 請求
- 2.1.6 響應
- 2.2 網頁基礎
- 2.2.1網頁的組成
- 2.2.2 網頁的結構
- 2.2.3 節點樹及節點間的關系
- 2.2.4 選擇器
- 2.3 爬蟲的基本原理
- 2.3.1 爬蟲概述
- 2.3.2 能抓怎樣的數據
- 2.3.3 javascript渲染的頁面
- 2.4 會話和Cookies
- 2.4.1 靜態網頁和動態網頁
- 2.4.2 無狀態HTTP
- 2.4.3 常見誤區
- 2.5 代理的基本原理
- 2.5.1 基本原理
- 2.5.2 代理的作用
- 2.5.3 爬蟲代理
- 2.5.4 代理分類
- 2.5.5 常見代理設置
- 3.基本庫使用
- 3.1 使用urllib
- 3.1.1 發送請求
- 3.1.2 處理異常
- 3.1.3 解析鏈接
- 3.1.4 分析Robots協議
- 3.2 使用requests
- 3.2.1 基本用法
- 3.2.2 高級用法
- 3.3 正則表達式
- 3.4 抓取貓眼電影排行
- 4.解析庫的使用
- 4.1 使用xpath
- 4.2 使用Beautiful Soup
- 4.3 使用pyquery
- 5.數據存儲
- 5.1 文件存儲
- 5.1.1 TXT 文件存儲
- 5.1.2 JSON文件存儲
- 5.1.3 CSV文件存儲
- 5.2 關系型數據庫存儲
- 5.2.1 MySQL的存儲
- 5.3 非關系數據庫存儲
- 5.3.1 MongoDB存儲
- 5.3.2 Redis存儲
- 6.Ajax數據爬取
- 6.1 什么是Ajax
- 6.2 Ajax分析方法
- 6.3 Ajax結果提取
- 6.4 分析Ajax爬取今日頭條街拍美圖
- 7.動態渲染頁面爬取
- 7.1 Selenium的使用
- 7.2 Splash的使用
- 7.3 Splash負載均衡配置
- 7.4 使用selenium爬取淘寶商品
- 8.驗證碼的識別
- 8.1 圖形驗證碼的識別
- 8.2 極驗滑動驗證碼的識別
- 8.3 點觸驗證碼的識別
- 8.4微博宮格驗證碼的識別
- 9.代理的使用
- 9.1 代理的設置
- 9.2 代理池的維護
- 9.3 付費代理的使用
- 9.4 ADSL撥號代理
- 9.5 使用代理爬取微信公總號文章
- 10.模擬登錄
- 10.1 模擬登陸并爬去GitHub
- 10.2 Cookies池的搭建
- 11.App的爬取
- 11.1 Charles的使用
- 11.2 mitmproxy的使用
- 11.3 mitmdump“得到”App電子書信息
- 11.4 Appium的基本使用
- 11.5 Appnium爬取微信朋友圈
- 11.6 Appium+mitmdump爬取京東商品
- 12.pyspider框架的使用
- 12.1 pyspider框架介紹
- 12.2 pyspider的基本使用
- 12.3 pyspider用法詳解
- 13.Scrapy框架的使用
- 13.1 scrapy框架介紹
- 13.2 入門
- 13.3 selector的用法
- 13.4 spider的用法
- 13.5 Downloader Middleware的用法
- 13.6 Spider Middleware的用法
- 13.7 Item Pipeline的用法
- 13.8 Scrapy對接Selenium
- 13.9 Scrapy對接Splash
- 13.10 Scrapy通用爬蟲
- 13.11 Scrapyrt的使用
- 13.12 Scrapy對接Docker
- 13.13 Scrapy爬取新浪微博
- 14.分布式爬蟲
- 14.1 分布式爬蟲原理
- 14.2 Scrapy-Redis源碼解析
- 14.3 Scrapy分布式實現
- 14.4 Bloom Filter的對接
- 15.分布式爬蟲的部署
- 15.1 Scrapyd分布式部署
- 15.2 Scrapyd-Client的使用
- 15.3 Scrapyd對接Docker
- 15.4 Scrapyd批量部署
- 15.5 Gerapy分布式管理
- 微信公總號文章實戰
- 源碼
- other