尽管允许所有 IP 地址访问,但无法连接到 MongoDB Atlas
Cannot connect to MongoDB Atlas despite allowing all IP address to access
出于某种原因,我无法访问 MongoDB 数据库。我有 运行 通过常见的嫌疑人,例如删除密码周围的 <> 括号,还使我的集群可以从任何 IP 地址访问。
我正在尝试连接到 mongoDB 'sample_mflix' 提供的示例数据库之一,我不确定这是否是一个问题。在本教程中,我指的是 https://www.youtube.com/watch?v=n1mdAPFq2Os&t=887s 创建者将数据库保留为 'test' 并且它有效,但我尝试了这个但也失败了。
任何帮助将不胜感激。
const { ApolloServer } = require('apollo-server');
const gql = require('graphql-tag');
const mongoose = require ('mongoose');
const { MONGODB } = require('./config.js');
const typeDefs = gql`
type Query{
sayHi: String!
}
`;
//each query has resolver
const resolvers = {
Query: {
sayHi: () => 'Hello World!!!'
}
};
const server = new ApolloServer({
typeDefs,
resolvers
});
mongoose.connect('mongodb+srv://MYUSERNAME:MYPASSWORD@cluster0.j2bnm.mongodb.net/**sSAMPLEDATABASEgivenbyMongoDB**?retryWrites=true&w=majority', {useNewUrlParser: true})
.then(() => {
console.log('MongoDB connected');
return server.listen({ port: 5000 });
})
.then(res => {
console.log(`Server running at ${res.url}`);
});
如果您的密码包含 non-alphanumeric 字符,例如 @、# 和 &,您需要确保通过 encodeURIComponent 传递密码,否则 mongodb 可能会误解密码并因此拒绝它。
MYUSERNAME:encodeURIComponent(MYPASSWORD)
我不确定发生了什么,但我什么也没做,突然它起作用了
出于某种原因,我无法访问 MongoDB 数据库。我有 运行 通过常见的嫌疑人,例如删除密码周围的 <> 括号,还使我的集群可以从任何 IP 地址访问。 我正在尝试连接到 mongoDB 'sample_mflix' 提供的示例数据库之一,我不确定这是否是一个问题。在本教程中,我指的是 https://www.youtube.com/watch?v=n1mdAPFq2Os&t=887s 创建者将数据库保留为 'test' 并且它有效,但我尝试了这个但也失败了。 任何帮助将不胜感激。
const { ApolloServer } = require('apollo-server');
const gql = require('graphql-tag');
const mongoose = require ('mongoose');
const { MONGODB } = require('./config.js');
const typeDefs = gql`
type Query{
sayHi: String!
}
`;
//each query has resolver
const resolvers = {
Query: {
sayHi: () => 'Hello World!!!'
}
};
const server = new ApolloServer({
typeDefs,
resolvers
});
mongoose.connect('mongodb+srv://MYUSERNAME:MYPASSWORD@cluster0.j2bnm.mongodb.net/**sSAMPLEDATABASEgivenbyMongoDB**?retryWrites=true&w=majority', {useNewUrlParser: true})
.then(() => {
console.log('MongoDB connected');
return server.listen({ port: 5000 });
})
.then(res => {
console.log(`Server running at ${res.url}`);
});
如果您的密码包含 non-alphanumeric 字符,例如 @、# 和 &,您需要确保通过 encodeURIComponent 传递密码,否则 mongodb 可能会误解密码并因此拒绝它。
MYUSERNAME:encodeURIComponent(MYPASSWORD)
我不确定发生了什么,但我什么也没做,突然它起作用了