免费NoSqlDB存储服务器: MongoCloud (MongoDB备份, 迁移, 连接) 和 AWS(DynamoDB使用)

本文全面介绍了亚马逊云服务(AWS)的各项资源,包括EC2实例管理、S3存储操作、DynamoDB数据库应用、MongoDB数据库搭建及SpringBoot连接方法,涵盖了从基础设置到高级功能的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章来自:http://blog.csdn.net/intbird 转载请说明出处

亚马逊全部免费资源地址

在这里插入图片描述

AWS管理控制台

在这里插入图片描述

AWS-EC2
ec2-user切换为root用户

su su

或者

su root
passwd
su

更改hostname

[ec2-user@ip-172-31-35-244 ~]$ sudo hostname linux
重新连接后
[ec2-user@linux ~]$
在这里插入图片描述

在这里插入图片描述

开启远程连接

开启除ssh 22端口外的其他端口, 否则aws主机拒绝访问
添加要使用的网络组的入站规则
在这里插入图片描述

AWS-S3
存储API

CLI: https://docs.aws.amazon.com/cli/latest/reference/s3api/
SDK: https://aws.amazon.com/cn/sdk-for-java/
SDK JAVA API: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html

删除默认存储桶

存储桶提示权限不足 解决方法:
在 权限 → 存储桶策略 → 修改并保存以下下字段 → 再次删除

“Effect”: “Deny” → “Effect”: “Allow”

AWS-DynamoDB
在线创建dynamo表

添加表 → 选中表 → 创建项目 | 修改项目 (项目即为要添加的文档数据)
在这里插入图片描述

dynamo db客户端
  1. 下载地址: NoSQL Workbench

  2. 创建IAM用户并添加数据库权限在这里插入图片描述

  3. IAM连接DynamoDB客户端
    在这里插入图片描述

连接dynamo客户端和SDK
  1. 创建IAM用户并添加数据库权限在这里插入图片描述

  2. IAM连接DynamoDB客户端
    查询
    在这里插入图片描述
    添加在这里插入图片描述

  3. 连接数据库api
    DynamoDB API
    GitHub

Mongo免费500M数据库

在这里插入图片描述

centos创建mongo

官网文档

添加源: /etc/yum.repos.d/mongodb-enterprise-4.2.repo

安装: sudo yum install -y mongodb-enterprise

创建管理员用户

官网文档

admin: atlasAdmin@admin
rw: readWriteAnyDatabase@admin
r: readAnyDatabase@admin

允许外网访问

config: 127.0.0.1 -> 0.0.0.0
sh命令 :

mongoCompass使用介绍

官方文档

连接本地: mongodb://127.0.0.1:27017

连接远程: mongodb://:@intbird.net:27017/

增删改查: 增删改查

NodeJs连接mongo

驱动: const MongoClient = require(‘mongodb’).MongoClient;

连接: mongodb+srv://:@cluster0.58k08.mongodb.net/?retryWrites=true&w=majority

示例代码:

const MongoClient = require('mongodb').MongoClient
const MongoConfigs = require('./key/mongodb-keys')

function logger(key, content) {
  // console.log(key, content)
}

function insertOne(dbConnName, object, resultCallback, errorCallback) {
  logger("insertOne", JSON.stringify(object))
  insertOneDB(MongoConfigs.dbUrl, MongoConfigs.dbName, dbConnName, object, resultCallback, errorCallback)
}

function insertArray(dbConnName, array, resultCallback, errorCallback) {
  logger("insertArray", JSON.stringify(array))
  insertArrayBD(MongoConfigs.dbUrl, MongoConfigs.dbName, dbConnName, array, resultCallback, errorCallback)
}

function deleteOne(dbConnName, object, resultCallback, errorCallback) {
  logger("deleteOne", JSON.stringify(object))
  deleteOneBD(MongoConfigs.dbUrl, MongoConfigs.dbName, dbConnName, object, resultCallback, errorCallback)
}

function deleteArray(dbConnName, array, resultCallback, errorCallback) {
  logger("deleteArray", JSON.stringify(array))
  deleteArrayDB(MongoConfigs.dbUrl, MongoConfigs.dbName, dbConnName, array, resultCallback, errorCallback)
}

function queryOne(dbConnName, object, resultCallback, errorCallback) {
  logger("queryOne", JSON.stringify(object))
  queryOneDB(MongoConfigs.dbUrl, MongoConfigs.dbName, dbConnName, object, resultCallback, errorCallback)
}

function queryArray(dbConnName, array, resultCallback, errorCallback) {
  logger("queryArray", JSON.stringify(array))
  queryArrayDB(MongoConfigs.dbUrl, MongoConfigs.dbName, dbConnName, array, resultCallback, errorCallback)
}

function removeArray(dbConnName, resultCallback, errorCallback) {
  logger("remove")
  queryArrayDB(MongoConfigs.dbUrl, MongoConfigs.dbName, dbConnName, {}, resultCallback, errorCallback)
}


function insertOneDB(dbUrl, dbName, dbConnName, object, resultCallback, errorCallback) {
  const options = {useNewUrlParser: true, useUnifiedTopology: true}
  MongoClient.connect(dbUrl, options, function (err, client) {
    if (err) {
      errorCallback(err);
      return
    }

    const db = client.db(dbName);
    db.collection(dbConnName).insertOne(object, function (error, result) {
      if (err) {
        errorCallback(err);
        return
      }
      resultCallback(result);
      logger("result:", JSON.stringify(result))
      client.close();
    });
  });
}


function insertArrayBD(dbUrl, dbName, dbConnName, array, resultCallback, errorCallback) {
  const options = {useNewUrlParser: true, useUnifiedTopology: true}
  MongoClient.connect(dbUrl, options, function (err, client) {
    if (err) {
      errorCallback(err);
      return
    }

    const db = client.db(dbName);
    db.collection(dbConnName).insertMany(array, function (error, result) {
      if (err) {
        errorCallback(err);
        return
      }
      resultCallback(result);
      logger("result:", JSON.stringify(result))
      client.close();
    });
  });
}

function deleteOneBD(dbUrl, dbName, dbConnName, object, resultCallback, errorCallback) {
  const options = {useNewUrlParser: true, useUnifiedTopology: true}
  MongoClient.connect(dbUrl, options, function (err, client) {
    if (err) {
      errorCallback(err);
      return
    }

    const db = client.db(dbName);
    db.collection(dbConnName).deleteOne(object, function (error, result) {
      if (error) throw error;
      resultCallback(result);
      logger("result:", JSON.stringify(result))
      client.close();
    });
  })

}

function deleteArrayDB(dbUrl, dbName, dbConnName, array, resultCallback, errorCallback) {
  const options = {useNewUrlParser: true, useUnifiedTopology: true}
  MongoClient.connect(dbUrl, options, function (err, client) {
    if (err) {
      errorCallback(err);
      return
    }

    const db = client.db(dbName);
    db.collection(dbConnName).deleteMany(array, function (error, result) {
      if (error) throw error;
      resultCallback(result);
      logger("result:", JSON.stringify(result))
      client.close();
    });
  })
}

function queryOneDB(dbUrl, dbName, dbConnName, object, resultCallback, errorCallback) {
  const options = {useNewUrlParser: true, useUnifiedTopology: true}
  MongoClient.connect(dbUrl, options, function (err, client) {
    if (err) {
      errorCallback(err);
      return
    }
    const db = client.db(dbName);
    db.collection(dbConnName).findOne(object, function (error, result) {
      if (error) throw error;
      resultCallback(result);
      logger("result:", JSON.stringify(result))
      client.close();
    });
  })
}

function queryArrayDB(dbUrl, dbName, dbConnName, object, resultCallback, errorCallback) {
  const options = {useNewUrlParser: true, useUnifiedTopology: true}
  MongoClient.connect(dbUrl, options, function (err, client) {
    if (err) {
      errorCallback(err);
      return
    }

    const db = client.db(dbName);
    db.collection(dbConnName).find(object).toArray(function (error, result) {
      if (error) throw error;
      resultCallback(result);
      logger("result:", JSON.stringify(result))
      client.close();
    });
  })
}

module.exports = {
  MongoClient: MongoClient,
  queryOne,
  queryArray,
  insertOne,
  insertArray,
  deleteOne,
  deleteArray
}

springBoot连接mongo
备份和迁移

https://docs.mongodb.com/manual/core/backups/
https://studio3t.com/download/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值