linux安裝mongoDB與NodeJs遠程鏈接

1、下載linux版本mongoDB

版本說明

development release ---->開發版

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

previous release ---->舊版本node

系統說明linux

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

  • 安裝 此次安裝使用tgz包mongodb

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
複製代碼

2、配置啓動

  • 在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退出

3、配置帳戶,受權登陸

  • mongodb咱們已經安裝完成,也成功啓動鏈接上了測試庫,但此時咱們./mongo啓動的時候是默認不須要受權登陸的,這樣並不安全,因此咱們須要建立管理員,以後啓動及操做都須要受權登陸才能夠進行。數據庫

  • 建立admin數據庫,建立用戶,設置帳號,密碼,權限安全

> use admin
switched to db admin
> db.createUser({user:"root",pwd:"123456",roles:["root"]})
Successfully added user: { "user" : "root", "roles" : [ "root" ] }
複製代碼

Tip: 若是你跟着個人步驟執行,結果密碼也誤設置成123456,那麼這裏提供兩個修改密碼的方法:bash

  1. db.changeUserPassword("usertest","changepass") usertest用戶, changepass新密碼
  2. db.updateUser("usertest",{pwd:"changepass1"})
  • 使用帳號密碼登陸後,結束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
複製代碼

重啓app

[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"
    	}
	]
}
複製代碼

4、開放對外端口,遠程鏈接

  • 若是是阿里雲主機須要在阿里雲控制檯開啓27017端口,而後在服務器命令行開啓相應端口,而後重啓防火牆生效
1,查看防火牆狀態
[root@izbp1b498epn4trb75oykez redis]# systemctl status firewalld
2,開啓27017端口
[root@izbp1b498epn4trb75oykez redis]# firewall-cmd --zone=public --add-port=27017/tcp --permanent
success
3,重啓防火牆
[root@izbp1b498epn4trb75oykez redis]# firewall-cmd --reload
4,查看端口號是否開放成功,輸出yes開放成功,no則失敗
[root@izbp1b498epn4trb75oykez redis]# firewall-cmd --zone=public --query-port=27017/tcp
複製代碼
  • 若是是其餘主機能夠參考這篇文章
  • 端口開放成功後能夠使用Navicat鏈接測試

  • 鏈接成功,因爲數據庫中沒有內容因此顯示的是空白

  • 開發中鏈接中使用,各個語言鏈接工具不必定相同這裏以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('連接成功')
  }
})
複製代碼

5、用戶權限角色說明

Read:容許用戶讀取指定數據庫

readWrite:容許用戶讀寫指定數據庫

dbAdmin:容許用戶在指定數據庫中執行管理函數,如索引建立、刪除,查看統計或訪問system.profile

userAdmin:容許用戶向system.users集合寫入,能夠找指定數據庫裏建立、刪除和管理用戶

clusterAdmin:只在admin數據庫中可用,賦予用戶全部分片和複製集相關函數的管理權限。

readAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的讀權限

readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的讀寫權限

userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的userAdmin權限

dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的dbAdmin權限。

root:只在admin數據庫中可用。超級帳號,超級權限。

6、完成

  • 至此linux安裝mongodb與遠程鏈接所有完成,描述過程當中若有不許確或講解不清楚的地方歡迎在評論區留言斧正,撒花🎉🎉🎉🎉
相關文章
相關標籤/搜索