Mysql

使用 MySQL 連接到 mongosqld 時訪問被拒絕

  • March 4, 2022

我正在嘗試通過 mongosqld 使用 MySQL 連接到我的 MongoDB。我執行 mongosqld 的配置文件看起來像

security:
 enabled: true
mongodb:
 net:
   uri: test-db
   auth:
     username: usertest
     password: pass
     source: admin
schema:
   path: schema.drdl

我將它託管在帶有, , , ,的mongo ODBC 管理器上。我可以使用Mongo 的教程通過 Excel 連接和查詢這個 MongoDB ,但是我不能使用Mongo 的教程對 MySQL 做同樣的事情。當我嘗試從終端連接時,我收到握手錯誤:無法 saslStart 對話 0:身份驗證失敗。來自 mongosqld 端。我在 macOS 上這樣做。僅在嘗試從 MySQL 連接時可能導致此問題的原因是什麼?SERVER=127.0.0.1``PORT=3071``DATABASE=test_db``UID=usertest?source=admin``PWD=pass``mysql 'user=usertest?source=admin' --default-auth=mongosql_auth -p``ERROR 1045 (28000): Access denied for user 'usertest' and

根據 MongoDB 文件從 MySQL 客戶端連接您可以使用命令行 MySQL 客戶端連接到 MongoDB BI 連接器。

從 MySQL 連接,無需身份驗證或 TLS/SSL

要連接到監聽 MySQL 預設埠 3307 的 mongosqld 實例,請執行以下命令:

mysql --protocol tcp --port 3307

使用身份驗證從 MySQL 連接

按照安裝 C​​ 身份驗證外掛中的說明安裝C 身份驗證外掛

以下範例使用 C 身份驗證外掛連接到作為使用者報告使用者偵聽的mongosqld實例**port 3307**。輸入命令後,MySQL shell 會提示輸入密碼。

mysql --user='reportsUser?source=admin' --default-auth=mongosql_auth -p

注意:此範例假定身份驗證外掛文件 mongosql_auth.so 位於預設 MySQL 外掛文件夾中。外掛文件夾的位置因平台而異,但您可以通過執行以下命令來定位它:

mysql_config --plugindir

mysql_config.pl只能在 macOS 和 Linux 主機上找到外掛目錄。

重要提示: C 身份驗證外掛是針對MySQL 5.7.18社區版(64 位)開發的,並使用MySQL 5.7.18社區版和最新版本的 MongoDB Connector for BI 進行了測試。該外掛與 MySQL 伺服器或連接器/ODBC 驅動程序版本 8 及更高版本不兼容。

使用身份驗證和 TLS/SSL 從 MySQL 連接

要連接到監聽埠 3307 的mongosqld實例,使用身份驗證機制 PLAIN 作為使用者寬限期,並使用特定的 TLS/SSL CA 和 x.509 證書,請執行以下命令:

mysql --enable-cleartext-plugin --protocol tcp --port 3307 \
 --user='grace?mechanism=PLAIN&source=$external' \
 --ssl-ca=/path_to_the_CAcert/ca.crt \
 --ssl-key=/path_to_my_certificate_key/mysql.key \
 --ssl-cert=/path_to_my_client_certificate/mysql.crt \
 -p

重要提示:MySQL 社區的二進制分發版使用yaSSL SSL 庫來加密連接。MySQL Enterprise 使用與 MongoDB Connector for BI 兼容的OpenSSL 。使用 MySQL Enterprise 通過 TLS / SSL 連接到 BI 連接器。

如果使用$external authentication原始碼,請將您的使用者名用單引號括起來或使用反斜杠轉義 $ 字元,以防止您的 shell 執行插值。

供您進一步參考這裡

我發現問題只是我使用的 MySQL 版本。我使用的是 MySQL 8.0.12 版,但文件說

The C Authentication plugin was developed against MySQL 5.7.18 
Community Edition (64-bit), and tested with MySQL 5.7.18 Community 
Edition and the latest version of MongoDB Connector for BI. The 
plugin is not compatible with MySQL Server or Connector/ODBC driver 
version 8 and later.

一旦我下載並使用 MySQL 5.7 版,我就能夠成功連接。

引用自:https://dba.stackexchange.com/questions/219550