阿里云服务器连不上阿里云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!

上一篇下一篇

猜你喜欢

热点阅读