linux安裝mongoDB與遠端連線

胖大人本胖發表於2019-04-20

一、下載linux版本mongoDB

linux安裝mongoDB與遠端連線
版本說明

linux安裝mongoDB與遠端連線
development release ---->開發版

current release ---->當前穩定版

previous release ---->舊版本

系統說明

linux安裝mongoDB與遠端連線

Ubuntu ----> 優般圖
Linux legacy ----> 通用版
window ----> 不解釋
RHEL Linux ----> 紅帽
Amazon Linux ----> 亞馬遜
Debian Linux ----> Debian
SUSE Linux ----> SUSE
複製程式碼
  • 我linux系統安裝的是centOS 7,屬於紅帽旗下,所以我選擇的RHEL 7.2 Linux的mongoDB,貼個圖,我選擇的各個版本

    linux安裝mongoDB與遠端連線

  • 安裝 這次安裝使用tgz包

1,安裝wget
[root@izbp1b498epn4trb75oykez ~]# yum -y install wget
2,使用wget下載tgz包,我當前目錄/usr/local/
[root@izbp1b498epn4trb75oykez local]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.9.tgz
3,新建mongoDB資料夾,將tgz檔案解壓至mongoDB資料夾下
[root@izbp1b498epn4trb75oykez local]# mkdir mongoDB
[root@izbp1b498epn4trb75oykez local]# tar -zxvf mongodb-linux-x86_64-rhel70-4.0.9.tgz -C /usr/local/mongoDB
4,進入mongoDB目錄,檢視目錄檔案,發現還有一個mongodb-linux-x86_64-rhel70-4.0.9目錄,這個目錄內才是mongoDB的檔案,我們將這個目錄內的檔案移動到mongoDB目錄下
[root@izbp1b498epn4trb75oykez local]# cd mongoDB/
[root@izbp1b498epn4trb75oykez mongoDB]# ls
mongodb-linux-s390x-rhel72-4.0.9
[root@izbp1b498epn4trb75oykez mongoDB]# cd mongodb-linux-x86_64-rhel70-4.0.9
[root@izbp1b498epn4trb75oykez mongodb-linux-x86_64-rhel70-4.0.9]# ls
bin  LICENSE-Community.txt  MPL-2  README  THIRD-PARTY-NOTICES
[root@izbp1b498epn4trb75oykez mongodb-linux-x86_64-rhel70-4.0.9]# mv * ../
5,刪除已無用的mongodb-linux-x86_64-rhel70-4.0.9資料夾,(沒有強迫症可不刪)
[root@izbp1b498epn4trb75oykez mongoDB]# rm -rf mongodb-linux-x86_64-rhel70-4.0.9
複製程式碼

二、配置啟動

  • 在mongoDB根目錄下建立data目錄及其子目錄db,以及日誌目錄logs以及其日誌檔案mongoLogs.log,和配置檔案mongodb.conf,命令如下
[root@izbp1b498epn4trb75oykez mongoDB]# mkdir data
[root@izbp1b498epn4trb75oykez mongoDB]# mkdir data/db
[root@izbp1b498epn4trb75oykez mongoDB]# mkdir logs
[root@izbp1b498epn4trb75oykez mongoDB]# touch logs/mongoLogs.log
[root@izbp1b498epn4trb75oykez mongoDB]# touch mongodb.conf
複製程式碼
  • 編輯配置檔案mongodb.conf,命令如下
[root@izbp1b498epn4trb75oykez mongoDB]# vi mongodb.conf 
複製程式碼
  • 開啟檔案後,英文狀態下按鍵盤i鍵進入檔案編輯狀態,檔案內容如下
#埠號 預設27017
port=27017

#資料目錄
dbpath = /usr/local/mongoDB/data/db

#日誌檔案
logpath = /usr/local/mongoDB/logs/mongoLogs.log

#設定後臺執行
fork = true

#日誌輸出方式
logappend = true
複製程式碼
  • 編輯好之後按鍵盤ESC退出編輯狀態,接著按shift+:鍵,然後輸入wq,按回車儲存退出
  • 以配置檔案啟動mongodb,命令如下
[root@izbp1b498epn4trb75oykez bin]# ./mongod --config /usr/local/mongoDB/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 6685
child process started successfully, parent exiting
./mongo連線測試庫
[root@izbp1b498epn4trb75oykez bin]# ./mongo
複製程式碼
  • 啟動成功,./mongo連線測試庫,連線成功輸入exit退出
    linux安裝mongoDB與遠端連線

三、配置賬戶,授權登入

  • mongodb我們已經安裝完成,也成功啟動連線上了測試庫,但此時我們./mongo啟動的時候是預設不需要授權登入的,這樣並不安全,所以我們需要建立管理員,之後啟動及操作都需要授權登入才可以進行。

  • 建立admin資料庫,建立使用者,設定賬號,密碼,許可權

> use admin
switched to db admin
> db.createUser({user:"root",pwd:"123456",roles:["root"]})
Successfully added user: { "user" : "root", "roles" : [ "root" ] }
複製程式碼
  • 使用賬號密碼登入後,結束mongodb程式
> use admin
switched to db admin
> db.auth('root','123456');
1
> db.shutdownServer();
Wed Nov 14 06:07:33 DBClientCursor::init call() failed
Wed Nov 14 06:07:33 query failed : admin.$cmd { shutdown: 1.0 } to: 127.0.0.1:27017
server should be down...
Wed Nov 14 06:07:33 trying reconnect to 127.0.0.1:27017
Wed Nov 14 06:07:33 reconnect 127.0.0.1:27017 failed couldnt connect to server 127.0.0.1:27017
複製程式碼
  • 修改配置檔案,重啟使配置生效
[root@izbp1b498epn4trb75oykez mongoDB]# vi mongodb.conf
複製程式碼

配置檔案內容

#埠號 預設27017
port=27017
#繫結ip 預設127.0.0.1只允許本地連線
bind_ip = 0.0.0.0

#資料目錄
dbpath = /usr/local/mongoDB/data/db

#日誌檔案
logpath = /usr/local/mongoDB/logs/mongoLogs.log

#設定後臺執行
fork = true

#日誌輸出方式
logappend = true

#開啟身份驗證
auth = true
複製程式碼

重啟

[root@izbp1b498epn4trb75oykez bin]# ./mongod --config /usr/local/mongoDB/mongodb.conf 
複製程式碼
  • 以管理員賬號登入,建立普通使用者,之後本地做開發連線資料庫時需要配置賬號密碼才可以成功連線
1,以管理員賬號連線資料庫
[root@izbp1b498epn4trb75oykez bin]# ./mongo 127.0.0.1:27017/admin --username "root" --password "123456"
2,建立資料庫,建立賬號,給讀寫許可權
> use blog
> db.createUser({user:"blogAdmin",pwd:"123456",roles:[{role:"readWrite",db:"blog"}]})
Successfully added user: {
	"user" : "blogAdmin",
	"roles" : [
    	{
	    	"role" : "readWrite",
	    	"db" : "blog"
    	}
	]
}
複製程式碼

四、開放對外埠,遠端連線

  • 如果是阿里雲主機直接在阿里雲控制檯開啟27017埠即可
  • 如果是其他主機可以參考這篇文章
  • 埠開放成功後可以使用Navicat連線測試

linux安裝mongoDB與遠端連線

  • 連線成功,由於資料庫中沒有內容所以顯示的是空白

linux安裝mongoDB與遠端連線

  • 開發中連線中使用,各個語言連線工具不一定相同這裡以nodejs舉例
import mongoose from 'mongoose';
const db = mongoose.connect('mongodb://blogAdmin:123456@[你的IP]:27017/blog', { useNewUrlParser: true }, err => {
  if (err) {
    console.log('出錯---------->', err)
  } else {
    console.log('連結成功')
  }
})
複製程式碼

五、使用者許可權角色說明

Read:允許使用者讀取指定資料庫

readWrite:允許使用者讀寫指定資料庫

dbAdmin:允許使用者在指定資料庫中執行管理函式,如索引建立、刪除,檢視統計或訪問system.profile

userAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和管理使用者

clusterAdmin:只在admin資料庫中可用,賦予使用者所有分片和複製集相關函式的管理許可權。

readAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權

readWriteAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫許可權

userAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權

dbAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權。

root:只在admin資料庫中可用。超級賬號,超級許可權。

六、完成

  • 至此linux安裝mongodb與遠端連線全部完成,描述過程中如有不準確或講解不清楚的地方歡迎在評論區留言斧正,撒花????

相關文章