解決登入 MongoDB 遇到錯誤訊息 SCRAM-SHA-256 mechanism support not compiled into client library


使用 MongoDB shell 登入 MongoDB 伺服器遇到錯誤訊息「SCRAM-SHA-256 mechanism support not compiled into client library」。解決方式是檢查 MongoDB shell 的版本。




問題狀況:

使用 (位於主機 B) MongoDB shell 登入 MongoDB (位於主機 A)
mongo --host <IP>  -u <db_user> -p --authenticationDatabase <db_bane> --authenticationMechanism SCRAM-SHA-256
遇到錯誤訊息
connecting to: <IP>:27017/test
2018-12-09T23:33:29.924-0500 Error: 2 SCRAM-SHA-256 mechanism support not compiled into client library. at src/mongo/shell/db.js:1292
exception: login failed

解決方式:

mongodb - Mongo Authentication - Stack Overflow 問題在於使用錯誤的 shell 版本。
1. 檢查 (位於主機 A) MongoDB 伺服器的 MongoDB shell  版本
# 查看 MongoDB shell 版本的 Windows 指令
> C:\MongoDB\Server\4.0\bin\mongo.exe --version
# 查看 MongoDB shell 版本的 Linux 指令
$ sudo mongo --version
MongoDB shell version: 2.6.12

版本資訊是
MongoDB shell version v4.0.4git version: f288a3bdf201007f3693c58e140056adf8b04839allocator: tcmallocmodules: nonebuild environment: distmod: 2008plus-ssl distarch: x86_64 target_arch: x86_64

2. (位於主機 B) 另一台機器的 MongoDB shell  版本
MongoDB shell version: 2.6.12
需要更新到 4 版本

4. (位於主機 B) 編輯 yum 設定
$ sudo vi /etc/yum.repos.d/mongodb-org.repo
mongodb-org.repo 檔案內容
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
根據文件 8.4.3. Using Yum Variables - Red Hat Customer Portal
https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
對應到 redhat 的主要版本
https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/

5. (位於主機 B) 確認 yum 設定
yum repolist
6. (位於主機 B) 安裝或更新 MongoDB 相關套件
# 如果是全新安裝
sudo yum install mongodb-org
# 如果是更新
sudo yum update mongodb-org

7. (位於主機 B) 確認新安裝的 MongoDB shell  版本
$ sudo mongo --version
MongoDB shell version: 4.0.4

8. 此時可以順利登入 MongoDB 伺服器 (位於主機 A)
mongo --host <IP>  -u <db_user> -p --authenticationDatabase <db_bane> --authenticationMechanism SCRAM-SHA-256

版本資訊

  • MongoDB 伺服器: 4.0.4 (db.version() 回傳資訊)
  • MongoDB shell  版本: 4.0.4 (mongo --version 回傳資訊)

相關資料


圖片來源
MongoDB icon by Icons8


留言