1.下載mongodb社區版:
windows 安裝包安裝: https://www.mongodb.com/download-center#community(mongo下載中心)
配置環境變量 控制面板 ->系統->高級系統設置->環境變量->系統變量path 追加 C:\Program Files\MongoDB\Server\3.2\bin; (mongo默認安裝位置bin目錄下)
啟動數據庫:
新建 c://xx/mondb
新建 c://xx/monlog
mongod --dbpath c://xx/mondb // 然后訪問localhost:27017 (可以看到mongo給的一句提示英文,
It looks like you are trying to access MongoDB over HTTP on the native driver port.)說明成功。
配置mongo作為windows的一個服務來啟動
新建文件:c:xx/conf/mongod.cfg
內容 :
systemLog:
destination: file
path: C:\xx\mondblog\mongod.log
logAppend: true
storage:
dbPath: C:\xx\mondb
然后打開命令行(以管理員身份運行,windows下只有管理員可以創建服務)
mongod --config "C:\xx\mongod.cfg" --serviceName mongodbs --serviceDisplayName mongodbs --install
服務安裝成功后就可以使用
net start mongodbs (啟動數據庫)
net stop mongodbs (關閉數據庫)
centos (包管理器安裝):
創建yum庫配置文件: /etc/yum.repos.d/mongodb-org-3.4.repo
內容為:
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
運行命令 :sudo yum install -y mongodb-org
安裝完后mongo
默認配置文件位於 /etc/mongod.conf
數據文件存儲在
/var/lib/mongo
日志文件存儲在
/var/log/mongodb
啟動mongo數據庫
sudo service mongod start
sudo service mongod stop
sudo service mongod restart
查看mongo數據庫的狀態 內存占用等
mongostat
此時數據庫可在localhost上隨意連接並使用,無需用戶名與認證機制。
2.
開啟mongodb的遠程連接
編輯mongod.conf文件
net:
# bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.
給binIp這行加上注釋,然后重啟mongodb,此時可以從任何地方使用ip地址訪問數據庫 如 100.161.10.299:27017
3. mongodb開啟認證,創建數據庫用戶並分配角色,然后使用用戶名密碼登錄
1.使用ssh登錄遠程服務器 (windows本機則直接打開本地命令行)
2.使用mongo shell 創建用戶
輸入 mongo 進入mongo shell
use admin;
db.createUser({user:"xx",pwd:"xxpwd",roles:["dbAdminAnyDatabase","readWriteAnyDatabase","root"]});
3.啟用mongo 的認證機制
編輯 mongod.conf文件:
追加上
security:
authorization: "enabled"
重啟mongo服務
參考:
配置文件的配置項:
https://docs.mongodb.com/master/reference/configuration-options/#security-options
此時連接mongodb需要用用戶名密碼登錄並驗證,
然后再為特定的庫創建該庫的用戶登錄並登錄
mongo //進入mongo 命令行
connect("mongodb://xx:xxpwd@localhost:27017/admin"); //使用指定的用戶連接
use admin; //指定使用的數據庫
db.auth(xx,xxpwd); // 進行auth 注意:沒認證前沒有資格操作任何數據庫,auth成功返回1,失敗返回0
use pca; // 指定要創建用戶的數據庫
db.createUser({user:"xx1",pwd:"xx1pwd",roles:[{role: "userAdmin", db: "pca"},{role: "readWrite", db: "pca"},{role: "dbAdmin",db: "pca"}]}); //為pca數據庫 創建用戶
完畢 此時可以使用
xx1 xx1pwd 登錄並操作pca數據庫
4.注意此時可能服務器由於防火牆不開發27017端口而遠程連接失敗
防火牆開放27017端口:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT