【數據庫】Linux下MongoDB的安裝和配置

MongoDB安裝

選擇使用Yum安裝javascript

一、製做 repo 文件

cat << EOF > /etc/yum.repos.d/mongodb-org-4.2.repo
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
EOF
12345678

baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/4.2/x86_64/安裝失敗,嘗試把地址寫死爲7,安裝基於centos7的版本。能夠成功安裝
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.2/html

二、使用yum 命令安裝

yum install -y mongodb-org

三、啓動mongodb

安裝完啓動服務則可使用java

啓動、中止、重啓命令以下:web

service mongod start
service mongod stop
service mongod restart

四、開放mongodb的遠程鏈接

mongodb的配置文件是 /etc/mongod.confmongodb

若是要開放遠程訪問須要修改該文件的 bindIp值爲: 0.0.0.0 ,不然經過其它電腦是鏈接不到的shell

vim /etc/mongod.conf

文件修改後要執行 restart 使配置生效數據庫

service mongod restart

若是仍不能遠程鏈接,查看防火牆狀態,若是防火牆開啓,關閉防火牆或讓防火牆放開 27017 端口(該端口是mongodb的默認端口,可經過配置文件修改mongodb的端口)
查看防火牆狀態vim

firewall-cmd --state

關閉防火牆狀態centos

systemctl stop firewalld.service

防火牆放開 27017 端口api

firewall-cmd --permanent --zone=public --add-port=27017/tcp
firewall-cmd --reload

測試是否能夠遠程鏈接

http://服務器ip:27017/

阿里雲服務器則須要添加端口得安全組

五、建立用戶和密碼

1.進入mongo shell

[root@iZ2ze1wbnx7ym2bkq1xtk5Z conf.d]# mongo
MongoDB shell version v4.2.8
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("73551ca3-8d61-4ce2-a5d1-c0563f9828d4") }
MongoDB server version: 4.2.8
Server has startup warnings: 
2020-07-01T15:24:12.665+0800 I  CONTROL  [initandlisten] 
2020-07-01T15:24:12.665+0800 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-07-01T15:24:12.665+0800 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-07-01T15:24:12.665+0800 I  CONTROL  [initandlisten] 
2020-07-01T15:24:12.665+0800 I  CONTROL  [initandlisten] 
2020-07-01T15:24:12.665+0800 I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-07-01T15:24:12.665+0800 I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-07-01T15:24:12.665+0800 I  CONTROL  [initandlisten] 
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

>

2.切換到admin數據庫

admin這個庫是mongodb自動帶的,專門管理用戶和權限的,建立超級用戶,這個用戶能夠管理全部用戶的增刪改以及權限控制

> use admin
switched to db admin

3.添加帳戶

建立一個超級管理員權限(擁有userAdminAnyDatabasereadWriteAnyDatabase兩個權限)的用戶。用戶名和密碼隨便寫,可是角色必須是這兩個
db.createUser( { user: "alenghan", pwd: "123456", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } )

注:``db.createUser()`的具體使用方法:連接地址

建立完成就可使用命令連接

mongo --port 27017 -u "alenghan" --authenticationDatabase "admin" -p 123456

4.修改mongo.conf文件

中止mongodb服務(service mongod stop),修改配置文件(/etc/mongod.conf

# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog: #系統日誌
  destination: file #日誌輸出目的地
  logAppend: true # 若是爲true,當mongod/mongos重啓後,將在現有日誌的尾部繼續添加日誌。不然,將會備份當前日誌文件,而後建立一個新的日誌文件;默認爲false。
  path: /var/log/mongodb/mongod.log #日誌路徑

# Where and how to store data.
storage:
  dbPath: /var/lib/mongo # mongod進程存儲數據目錄,此配置僅對mongod進程有效
  journal:
    enabled: true #是否開啓journal日誌持久存儲,journal日誌用來數據恢復,是mongod最基礎的特性,一般用於故障恢復。64位系統默認爲true,32位默認爲false,建議開啓,僅對mongod進程有效。
#  engine: #存儲引擎類型,mongodb 3.0以後支持「mmapv1」、「wiredTiger」兩種引擎,默認值爲「mmapv1」;官方宣稱wiredTiger引擎更加優秀。
#  wiredTiger: #對wiredTiger引擎配置生效

# how the process runs
processManagement:
  fork: true  # fork and run in background 運行在後臺
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile PID文件路徑
  timeZoneInfo: /usr/share/zoneinfo 

# network interfaces
net:
  port: 27017 #端口
  bindIp: 127.0.0.1 
  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting. 綁定外網op 多個用逗號分隔,若是開放所有外網訪問, 輸入0.0.0.0
  # maxIncomingConnections: 65536  #進程容許的最大鏈接數 默認值爲65536
  # wireObjectCheck: true #當客戶端寫入數據時 檢測數據的有效性(BSON) 默認值爲true
  
#security: #安全有關的配置
  #authorization: enabled #disabled或者enabled,僅對mongod有效;表示是否開啓用戶訪問控制(Access Control),即客戶端能夠經過用戶名和密碼認證的方式訪問系統的數據,默認爲「disabled」,即客戶端不須要密碼便可訪問數據庫數據。(限定客戶端與mongod、mongos的認證)
  #javascriptEnabled: true #true或者false,默認爲true,僅對mongod有效;表示是否關閉server端的javascript功能,就是是否容許mongod上執行javascript腳本,若是爲false,那麼mapreduce、group命令等將沒法使用,由於它們須要在mongod上執行javascript腳本方法。若是你的應用中沒有mapreduce等操做的需求,爲了安全起見,能夠關閉javascript。
  
#operationProfiling: #性能分析器
  #slowOpThresholdMs: 100 #數據庫profiler斷定一個操做是「慢查詢」的時間閥值,單位毫秒;
  #mode: off #數據庫profiler級別,操做的性能信息將會被寫入日誌文件中,
  # 可選值:1)off:關閉profiling
  #       2)slowOp:on,只包含慢操做日誌
  #       3)all:on,記錄全部操做
  # 數據庫profiling會影響性能,建議只在性能調試階段開啓。此參數僅對mongod有效。
  
#replication: #主從複製 主備模式 這個是大點,須要單獨講
  #oplogSizeMB:10240 #replication操做日誌的最大尺寸,單位:MB。

#sharding: #sharding架構 集羣中使用,暫時沒有接觸
相關文章
相關標籤/搜索