簡體   English   中英

連接到 Mongo 數據庫時出錯。 錯誤的身份驗證失敗 heroku + atlas mongodb + stripi

[英]Error connecting to the Mongo database. bad auth Authentication failed heroku + atlas mongodb + strapi

我可能沒有足夠的代碼來提供。

我目前正在使用 Strapi 並在 heroku + atlas mongodb 上運行我的應用程序。 當我通過 heroku 使用 postgresql 運行應用程序時,一切正常,但我正在將所有內容遷移到 atlas mongodb。

在 Strapi 我有我的配置

{
  "defaultConnection": "default",
  "connections": {
    "default": {
      "connector": "strapi-hook-mongoose",
      "settings": {
        "client": "mongo",
        "host": "${process.env.DATABASE_HOST}",
        "port": "${process.env.DATABASE_PORT}",
        "database": "${process.env.DATABASE_NAME}",
        "username": "${process.env.DATABASE_USERNAME}",
        "password": "${process.env.DATABASE_PASSWORD}"
      },
      "options": {
        "useNullAsDefault": true,
        "ssl": "${process.env.DATABASE_SSL}"
      }
    }
  }
}

這些配置在.env ,如果在本地運行,文件看起來像

DATABASE_HOST=xxxxxxx-shard-00-00-xxxxxx.mongodb.net:25758,xxxxxxx-shard-00-01-xxxxxx.mongodb.net:25758,xxxxxxx-shard-00-02-xxxxxx.mongodb.net:25758/test?ssl=true&replicaSet=xxxxxxx-shard-0&authSource=admin&retryWrites=true
DATABASE_PORT=25758
DATABASE_USERNAME=xxxxx
DATABASE_PASSWORD=xxxxx
DATABASE_NAME=xxxxx
DATABASE_SSL=true

如果我在本地運行它,它可以完美運行並且能夠連接到數據庫。

所以我部署到heroku並轉到heroku的設置來配置變量。 我配置了與.env文件中相同的變量

我還檢查了 atlas mongodb 的 ip 白名單,我將所有流量(任何 ip)列入白名單,所以這應該不是問題。

但如前所述,我在本地使用了相同的.env並在 heroku 上使用了config vars ....但是在 heroku 上我收到了此錯誤消息

error Error connecting to the Mongo database. bad auth Authentication failed.

有人對身份驗證失敗的原因有任何建議嗎?

在此先感謝您的任何建議和幫助。

DATABASE_SSL=true環境變量不支持布爾值,這意味着它將作為字符串傳遞。 現在,您需要在配置中手動設置該值,而不是通過 heroku 中的 env 傳遞它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM