阿里云服务器连不上阿里云MongoDB内网链接?
2023-08-15 本文已影响0人
秋天下雨淋湿冬天
背景:
应运维要求,要把所有的阿里云MongoDB公网链接改为内网链接,
操作是就是把
host: 'dds-xxxa-pub.mongodb.rds.aliyuncs.com'
改为
host: 'dds-xxxb.mongodb.rds.aliyuncs.com'
其他项目基本替换一下链接就完成了。
只有一个项目,切换之后连接不上,提示30秒超时。
踩坑经历:
换个服务器还是不行,排除了服务器的问题;
换个MongoDB密码还是不行,排除了密码的问题;
那就定位是这个项目的框架有问题了。
然后,抽离一个MongoDB链接的最小版本,发现还是有问题,代码如下:testdb.cjs
// 导入所需的模块
const mongoose = require('mongoose');
// 定义数据库连接地址
const dbUrl = 'mongodb://localhost:27017/mydatabase';
// 连接数据库
mongoose.connect(dbUrl, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log('成功连接到数据库');
// 定义Detail表结构
const detailSchema = new mongoose.Schema({
name: String,
age: Number,
email: String
});
// 创建Detail模型(相当于数据表)
const Detail = mongoose.model('Detail', detailSchema);
// 创建一条新的数据
const newDetail = new Detail({
name: 'John Doe',
age: 25,
email: 'johndoe@example.com'
});
// 保存数据到数据库
newDetail.save()
.then(() => {
console.log('数据保存成功');
// 关闭数据库连接
mongoose.connection.close();
})
.catch(error => {
console.error('保存时发生错误:', error);
// 关闭数据库连接
mongoose.connection.close();
});
})
.catch(error => {
console.error('数据库连接失败:', error);
});
执行 node testdb.cjs
还是不生效,已经放弃了。
后来把这个文件放到其他项目,居然可以生效?!
所以,定位到是mongoose在node代码中的版本问题;
image.png
升级版本,好了,over!