没有为 DEFAULT 定义 AuthProvider
No AuthProvider for DEFAULT defined
我的 MongoDB Compass 已更新到版本 1.28.1,现在我无法连接到我的 mongo 主机。错误是
No AuthProvider for DEFAULT defined.
我不使用身份验证,所以我的连接字符串没有用户名和密码。如何解决问题?
重新启动 MongoDB 指南针将解决此问题。
对于 passwordless/userless 连接,确保连接 url 不包含 authSource
对我有用。
替换
mongodb://some-remote-address:27017/database?readPreference=primary&authSource=database&directConnection=true&ssl=false
与
mongodb://some-remote-address:27017/database?readPreference=primary&directConnection=true&ssl=false
当您第一次创建新连接时,连接字符串如下所示
mongodb://some-remote-host/database
然后MongoDb Compass 将连接保存到收藏夹修改连接字符串为
mongodb://some-remote-host:27017/database?readPreference=primary&authSource=database&appname=MongoDB%20Compass&directConnection=true&ssl=false
要使 MongoDB Compass 再次连接,您需要从连接字符串中删除此参数:
&authSource=database
我通过以下步骤解决了它(对于 Node.js 应用程序)...
- 在数据库导航面板下,为您的集群 [Cluster0]
单击 'Connect'
- 来自新的 window select 'Connect to Application' 选项
选择你的驱动程序(对我来说Node.js)和它的版本
- 之后您会看到连接字符串
mongodb+srv://<username>:<password>@cluster0.olwls.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
注意:用您的信用更改用户名和密码
这对我有用
mongoose.connect(
`mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASS}@cluster0.adv0t.mongodb.net/${process.env.MONGO_DATABASE}?retryWrites=true&w=majority`,
{
useNewUrlParser: true,
useUnifiedTopology: true,
}
);
在父目录中创建一个“.env”文件(您需要在此之前安装dotenv)(如果您选择自定义位置,请添加以下内容)。
require('dotenv').config({ path: '/custom/path/to/.env' }) //uses custom location
否则,在服务器中添加这个。js/app.js 启动服务器的那个。
require('dotenv').config() //uses default location
在“.env”文件中,像这样定义用户、密码和数据库
MONGO_USER=uSerName
MONGO_PASS=p@sSW0rd
MONGO_DATABASE=myDatabase
将其更改为 mongodb://localhost:27017
一开始没有用,实际上我不得不重新启动 MongoDB Compass :/
我的 MongoDB Compass 已更新到版本 1.28.1,现在我无法连接到我的 mongo 主机。错误是
No AuthProvider for DEFAULT defined.
我不使用身份验证,所以我的连接字符串没有用户名和密码。如何解决问题?
重新启动 MongoDB 指南针将解决此问题。
对于 passwordless/userless 连接,确保连接 url 不包含 authSource
对我有用。
替换
mongodb://some-remote-address:27017/database?readPreference=primary&authSource=database&directConnection=true&ssl=false
与
mongodb://some-remote-address:27017/database?readPreference=primary&directConnection=true&ssl=false
当您第一次创建新连接时,连接字符串如下所示
mongodb://some-remote-host/database
然后MongoDb Compass 将连接保存到收藏夹修改连接字符串为
mongodb://some-remote-host:27017/database?readPreference=primary&authSource=database&appname=MongoDB%20Compass&directConnection=true&ssl=false
要使 MongoDB Compass 再次连接,您需要从连接字符串中删除此参数:
&authSource=database
我通过以下步骤解决了它(对于 Node.js 应用程序)...
- 在数据库导航面板下,为您的集群 [Cluster0] 单击 'Connect'
- 来自新的 window select 'Connect to Application' 选项
选择你的驱动程序(对我来说Node.js)和它的版本 - 之后您会看到连接字符串
mongodb+srv://<username>:<password>@cluster0.olwls.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
注意:用您的信用更改用户名和密码
这对我有用
mongoose.connect(
`mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PASS}@cluster0.adv0t.mongodb.net/${process.env.MONGO_DATABASE}?retryWrites=true&w=majority`,
{
useNewUrlParser: true,
useUnifiedTopology: true,
}
);
在父目录中创建一个“.env”文件(您需要在此之前安装dotenv)(如果您选择自定义位置,请添加以下内容)。
require('dotenv').config({ path: '/custom/path/to/.env' }) //uses custom location
否则,在服务器中添加这个。js/app.js 启动服务器的那个。
require('dotenv').config() //uses default location
在“.env”文件中,像这样定义用户、密码和数据库
MONGO_USER=uSerName
MONGO_PASS=p@sSW0rd
MONGO_DATABASE=myDatabase
将其更改为 mongodb://localhost:27017
一开始没有用,实际上我不得不重新启动 MongoDB Compass :/