一.前期准備
- Win10環境下 官網下載Mongodb包 https://www.mongodb.com/download-center?jmp=nav
本文使用 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.2.tgz - 上傳mongodb包至linux服務器
具體放置到目錄:/opt/software
二.mongodb安裝和配置
解壓和復制mongodb至目錄 /usr/local/mongodb
cd /opt/software
tar -zxvf mongodb-linux-x86_64-amazon-3.6.2.tgz
cp -r mongodb-linux-x86_64-amazon-3.6.2 /usr/local/mongodb
2.1 系統profile配置
vi /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
保存后,重啟系統配置
source /etc/profile
終端查看輸入$PATH 是否有全局
2.2 mongodb啟動配置
vi /etc/mongodb.conf
--新建配置文件 目錄可以定義
拷貝份 官方配置
storage:
dbPath: /data/mongodb/data/db #n你的數據庫目錄 需要自己建
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
# pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
# timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 27017
bindIpAll: true #所有ip都可以 方便遠程訪問
# bindIp: 127.0.0.1 #to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
security:
authorization: disabled #disabled enabled 啟用密碼 默認為disabled 因為沒有root賬號
按個人喜好修改配置 並且保存
三.mongodb測試
3.1 啟動mongod數據庫服務
mongod -f /etc/mongodb.conf
--這里的conf文件是相對路徑 如果不在bin目錄下 請輸入絕對
3.2 進入mongodb數據庫
mongo
如打印信息說明成功 pidof mongod
可以驗證 或者top看
3.3 插入1個數據
use lalala
db.test.insert({title:'哈哈',Tags:['anime','game']});
show collections
db.test.find()
show dbs
-- 只有有東西才顯示 默認test沒東西所以你看不到
四 建立root賬號
mongo 默認誰都可以訪問修改 但只有本地 所以我們要配置下
use 哪個就是用哪個數據庫 沒有就新建 mongo默認會生成一些數據庫 如 admin ,config
show dbs
-- 看看有哪些數據庫
use admin
db.createUser({user:"root",pwd:"123456",roles:["root","userAdminAnyDatabase"]})
-- 建立root並且分配角色
db.system.users.find()
-- 查看系統的用戶
如果有了就exit 出去 在mongodb.conf里 authorization為enabled
mongod --shutdown -f /etc/mongodb.conf
--關閉服務
mongod -f /etc/mongodb.conf
--開啟服務
show dbs
- 報錯 不可以以匿名方式顯示
use admin
db.auth("root","123456")
-- 注意引號 他是個字符串
返回1 說明身份通過你的身份就是root
use nana
-- 以root的身份建立個nana數據庫
db.createUser({user:'admin',pwd:'123456', roles: [ "readWrite", "dbAdmin" ]})
-- 為nana創建個管理員用戶admin
show users
-- 看用戶
db.logout()
-- 登出root 或者exit
db.websize.insert({title:'哈哈',Tags:['anime','game']});
-- 沒權限
db.auth("admin","123456")
-- 用nana的admin
db.websize.insert({title:'dorodoroLab',Tags:['dorodro','lab']});
-- 這次有權限
db.websize.find()
--插入成功
這里要注意的是 createUser 根據 use在哪個數據庫 show users信息就生成在哪 不然通過db.auth可能找不到 下面命令也一樣
db.grantRolesToUser( "admin" , [ "readWrite", "dbAdmin","useAdmin" ])
-- 用戶新授權 也可以用db.updateUser
db.dropUser('admin')
--刪除用戶
root用戶可以使用admin全局管理用戶 通過db.system.users.find()
db.system.users.remove()
等
如果懶的記請用db.help()
去看
五.mongodb開機啟動
5.1設置mongodb.service啟動服務
cd /lib/systemd/system
vi mongodb.service
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
RuntimeDirectory=mongodb
RuntimeDirectoryMode=0751
PIDFile=/var/run/mongodb/mongod.pid
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/bin/mongodb.conf
PrivateTmp=false
[Install]
WantedBy=multi-user.target
5.2 設置mongodb.service權限
chmod 754 mongodb.service
systemctl daemon-reload
5.3 系統mongodb.service操作命令
啟動服務
systemctl start mongodb.service
關閉服務
systemctl stop mongodb.service
開機啟動
systemctl enable mongodb.service
5.4 mongodb.service啟動測試
mongo 127.0.0.1
如果主機連虛擬機 請不要用bindIp的默認的localhost ,另外防火牆打開27017端口 這樣客戶端可以連接
客戶端工具 Robo 3T
官方文檔
權限文檔