1. 程式人生 > >linux ubuntu 下 mongodb 4.0 安裝和配置遠端連線

linux ubuntu 下 mongodb 4.0 安裝和配置遠端連線

安裝

搬運: 安裝教程

選擇對應版本,複製貼上命令即可,這裡就不涉及了。

安裝完成後啟動服務:sudo service mongod start

如果提示Unit mongod.service not found,可以嘗試以下命令:

1
2
sudo systemctl enable mongod
sudo systemctl daemon-reload

以上命令無效,可以建立 /lib/systemd/systemd/mongod.service 檔案,然後填入以下內容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[Service]
User=mongodb
Group=mongodb
EnvironmentFile=-/etc/default/mongod
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false

# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target

然後再輸入前面兩條命令啟用服務。

服務啟動完成後可以輸入sudo service mongod status檢視當前狀態。

配置遠端連線

編輯配置檔案

1
sudo vim /etc/mongod.conf

4.0的配置檔案採用yaml格式, 設定也有所不同。這裡將 net.bindIp 設為 0.0.0.0即可。

:x退出,然後sudo service mongod restart重啟服務即可。

配置使用者

使用者配置與之前版本無差異,使用db.createUser()建立使用者即可。

1
2
3
4
5
6
7
8
9
10
11
use admin
db.createUser({
    user: "admin",
    pwd: "admin",
    roles: [
        {
            role: "dbAdminAnyDatabase",
            db: "admin"
        }
    ]
})

啟用認證

修改配置檔案,新增:

1
2
security:
    authorization: enabled

然後重啟服務。

測試登入:

1
mongo --port 27017 -u admin -p admin --authenticationDatabase admin

配置成功就可以正常進入mongo shell了。

資料不相容

從舊版本升級到mongodb 4.0可能會存在資料不相容的問題,對應的服務錯誤碼exitCode=62/n/a。可以先將現有資料匯出,,然後進入/var/lib/mongodb, 刪除目錄下檔案。啟動完成後再匯入歷史資料。

如:

1
2
3
4
5
6
7
8
cd
mongodump -u admin -p admin -d test -o data # -d制定要匯出的資料庫名稱
#......匯出當前的所有庫
cd /var/lib/mongodb
sudo rm ./* -r
sudo service mongod start
cd
mongorestore -u admin -p admin --dir data

admin庫的匯入匯出可能存在問題,如果出現無法登入的問題,可以先關閉認證,然後db.changeUserPassword("username", "password")修改為之前的密碼,完成後再啟用認證。

參考文獻