云计算-关系型数据库(Relational Database)

news2024/11/15 5:33:18

关系数据库服务(RDS)(Relational Database Service (RDS))

        Amazon RDS 可用于在云中设置和运行关系数据库。它支持多种数据库实例类型以及多个数据库引擎,如 Amazon Aurora、PostgreSQL、MySQL、MariaDB、Oracle 数据库和 SQL Server。本周我们将使用 Amazon Aurora 创建一个无服务器 MySQL 数据库。Amazon Aurora 是免费的。

        我们可以从 AWS 管理控制台找到 RDS 主页。页面如下所示。

        我们点击“创建数据库”按钮。这会带我们到一个长页面,在那里我们可以创建和配置数据库集群。

        我们选择以下选项,而不更改大多数默认选项。

  1. 在“选择数据库创建方法”下选择“标准创建”。
  2. 在“引擎选项”部分,将“引擎类型”更改为“Aurora(MySQL 兼容)”。我们将使用基于 MySQL 的引擎。
  3. 在“可用版本”中,我们选择一个旧版本,使用 MYSQL v5.x.y.z。
  4. “模板”选择“生产”。
  5. 在“设置”部分,为“数据库集群标识符”命名,在本例中为“database-1”。
  6. 然后我们提供用户名(“admin”)和密码。
  7. “集群存储配置”应选择“Aurora 标准”。
  8. 在“实例配置”中,我们选择“突发类”,然后选择“db.t3.small”,以便配置一个较小的虚拟机。
  9. “可用性和持久性”选择默认选项。
  10. 在“连接”部分,保持所有默认选择不变。这包括 - “不连接到 EC2 计算资源”、“IPv4”、“默认 VPC”、默认子网组、不公开访问、“现有”VPC 防火墙、“默认”VPC 安全组。
  11. 我们保持“数据库身份验证”选择“密码身份验证”。
  12. 非常重要:取消选中“启用增强监控”。否则在创建此数据库时会出现错误。
  13. 在“其他配置”部分,可以为“初始数据库名称”提供数据库名称,为“scudb”。或者,如果愿意,可以跳过此步骤,稍后使用命令创建数据库。
  14. 我们不需要保留数据库备份,因此取消选中“备份”部分的“将标签复制到快照”选项。
  15. 非常重要:在“删除保护”部分取消选中“启用删除保护”选项。我们这样做是因为需要在完成后删除 RDS 数据库实例。RDS 是一个高计算资源,消耗大量信用。如果不删除 RDS 实例,我们很快会耗尽信用。
  16. 最后点击“创建数据库”按钮。我们会被带到下面的页面。在数据库准备和创建之前可能需要一些时间。

        我们可以看到两个实例 - 写入和读取。读取实例是只读的,写入实例用于读写。如果我们点击“数据库标识符”下的“写入实例”,在“连接和安全”选项卡下,我们将看到以下详细信息。我们需要记下“端点和端口”信息,以备后用。

配置 RDS 数据库

        我们还没有完成,我们需要在创建 Java 应用之前配置 RDS 数据库和 Cloud9 之间的映射。要做到这一点,请按照以下步骤操作。

        我们需要使用另一个服务“VPC”来配置映射。可以通过在 AWS 管理控制台页面上搜索找到此服务。


        从“VPC”控制台,我们点击左侧菜单上的“安全组”。我们通常会看到两个安全组 - 一个用于 RDS 集群,另一个用于 Cloud9 环境。可以从“描述”选项卡中双重检查。

        我们需要复制 Cloud9 安全组的“安全组 ID”。
        然后点击 RDS 集群的安全组。在“入站规则”下,点击“编辑入站规则”按钮。

        然后点击“添加规则”。在“类型”列表中选择“MYSQL/Aurora”,并将复制的安全组 ID 粘贴到“来源”文本框中。点击“保存规则”按钮。
要测试连接,我们进入 Cloud9 环境(与其映射的环境)并在终端中输入以下命令。
        打开一个新终端并输入以下命令,以检查映射是否成功。

mysql --user=[你的主用户名] --password=[你的密码] -h [你的数据库端点]

        在本例中,这是:

mysql --user=admin --password=12345678 -h database-1.cluster-cb3hgqshailb.us-east-1.rds.amazonaws.com

        如果连接成功,我们会看到如下确认消息。MySQL 终端将打开,可以在其中运行 SQL 命令。

运行 SQL 命令

        登录 MySQL 终端后,可以运行任何类型的 SQL 命令。例如,我们想查看现有数据库的列表。可以运行以下命令,并会看到数据库列表。请注意,SQL 命令以分号(;)结束。

        可以使用以下两个命令创建新数据库并列出现有数据库:

create database scudb;
show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| scudb              |
+--------------------+
4 rows in set (0.00 sec)

        可以使用以下命令选择要使用的数据库:

use scudb;

        可以使用以下命令创建表:

create table units(id int primary key not null, name text not null, credit int not null);

        可以通过以下命令检查表列表,表“units”应出现在列表中:

show tables;

使用 Java 访问 RDS

        对于 MySQL,我们需要在 pom.xml 中使用以下依赖项。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.6</version>
</dependency>

        需要在 App.java 中添加以下类。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

        在 main 方法中使用以下代码在我们的“scudb”数据库中创建一个新表(Units)。创建 Connection 和 Statement 实例。我们需要提供一个 JDBC URL、用户名和密码来创建数据库连接。JDBC URL 的格式如下:

jdbc:mysql:// [主机或端点] : [端口] / [数据库名称]

        主程序中的源码如下。我们将运行一个 SQL 查询来插入表:units(id, name, credit)。在数据库连接和执行查询之前,我们必须加载 MySQL 的类驱动程序(即‘com.mysql.jdbc.Driver’)。createStatement() 方法准备查询,executeUpdate() 方法执行该查询。

Connection c = null;
Statement stmt = null;

String endpoint = "database-1.cluster-cb3hgqshailb.us-east-1.rds.amazonaws.com";
String port = "3306";
String dbname = "scu_test_db";
String url = "jdbc:mysql://" + endpoint + ":" + port + "/" + dbname;
String username = "admin";
String password = "12345678";

try {
     Class.forName("com.mysql.jdbc.Driver");
     c = DriverManager
        .getConnection(url, username, password);

     stmt = c.createStatement();
     String sql = "insert into units(id, name, credit) values(1, 'Programming II', 4);";
     stmt.executeUpdate(sql);
     stmt.close();
     c.close();
     
} catch (Exception e) {
     System.err.println(e.getClass().getName()+": "+ e.getMessage());
     System.exit(0);
}

        为了确认插入,如果我们在 Cloud9 终端中运行选择查询,我们应该会看到以下输出。

MySQL [scudb]> select * from units;
+----+----------------+--------+
| id | name           | credit |
+----+----------------+--------+
|  1 | Programming II |      4 |
+----+----------------+--------+
1 row in set (0.01 sec)

        更新和删除条目非常简单,只需替换查询语句。使用以下源代码。executeUpdate() 方法用于插入、删除和更新项目。

sql = "update units set name=’NEW_NAME’ where id=1";
stmt.executeUpdate(sql);

sql = "delete from units where id=1";
stmt.executeUpdate(sql);

        从 RDS 数据库读取项目稍有不同。我们需要使用 ResultSet 类和 executeQuery() 方法。

import java.sql.ResultSet;
    
sql = "select name from units where id=1";
ResultSet res = stmt.executeQuery(sql);

while(res.next()) {
  System.out.println(res.getString("name"));
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1701202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Vue的应届毕业生财务管理系统-计算机毕业设计源码82886

摘 要 随着互联网大趋势的到来&#xff0c;社会的方方面面&#xff0c;各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去&#xff0c;而其中最好的方式就是建立网络管理系统&#xff0c;并对其进行信息管理。由于现在网络的发达&#xff0c;应届毕业生财务…

c# sqlite使用

安装包 使用 const string strconn "Data Sourcedata.db"; using (SQLiteConnection conn new SQLiteConnection(strconn)) {conn.Open();var cmd conn.CreateCommand();//创建表cmd.CommandText "create table t1(id int,name varchar(10))";var obj…

二百三十八、Hive——Hive中为每条数据创建唯一ID

一、目的 由于Kafka的JSON中缺少唯一的ID标识字段&#xff0c;因此发现后面的需求中DWD层表需要有一个唯一ID字段&#xff0c;这样才能与数据质量表更好的关联 二、Hive版本 尚硅谷的3.1.2版本 三、Hive创建唯一ID方法 网上的创建唯一ID方法有很多&#xff0c;这里展示一些…

子网划分,交换机原理与配置

子网划分 IP地址 IPv4由32位二进制数组成&#xff0c;一般用点分十进制来表示 IPv4是由32位二进制数组成&#xff0c;分成四组,第组八位。例如:11000000.10101000.00000000.00000010 为了便于配置通常表示成点分十进制形式例如:192.168.0.2 255.255.255.0 IPv6由128位组成&…

HDR视频相关标准-HDR vivid(二)

上文介绍了HDRvivid的一些技术。今天从全局角度来看看HDR视频的处理流程&#xff0c;HDR视频系统&#xff0c;即建立一个比SDR视频更大的色彩/亮度坐标体系&#xff0c;并改变系统的传输函数&#xff0c;以再现更大的色域(WCG)和更高的亮度动态范围。 菁彩 HDR技术的专业术语 …

充电宝哪个牌子好用?充电宝品牌怎么选?充电宝最好的牌子排名

现在市面上的充电宝品牌琳琅满目&#xff0c;但并不是所有的充电宝都安全可靠。据央视的一个报道&#xff0c;市面上有35%充电宝质量是不过关的!充电宝买不对就非常容易出现爆炸的一个情况&#xff0c;所以大家对选充电宝不仅能保障设备的安全。那么&#xff0c;充电宝哪个牌子…

TypeScript学习日志-第三十二天(infer关键字)

infer关键字 一、作用与使用 infer 的作用就是推导泛型参数&#xff0c;infer 声明只能出现在 extends 子语句中&#xff0c;使用如下&#xff1a; 可以看出 已经推导出类型是 User 了 二、协变 infer 的 协变会返回联合类型&#xff0c;如图&#xff1a; 三、逆变 infer…

FusionCharts 隐藏试用图标

1、找到fusioncharts.js文件 2、搜索“raphael-group-” 3、找到此处进行替换黄线部分 将&#xff1a;"a.setAttribute("class","raphael-group-"t)" 替换成"(a.setAttribute("class","raphael-group-"t),a.setAttr…

基于 Wireshark 分析 TCP 协议

一、TCP 协议 TCP&#xff08;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的传输层协议。它在网络通信中扮演着重要的角色&#xff0c;用于保证数据的可靠传输。 TCP协议的特点如下&#xff1a; 1. 面向连接&#xff1a;在通信前需要先建立连接&#x…

学习Uni-app开发小程序Day26

这一章学习的内容细节较多&#xff0c;主要是分为&#xff1a;首次加载减少网络消耗、获取图片的详细信息、图片的评分和避免重复评分、将图片下载到本地并且获取设备的授权 加载图片减少网络消耗 这里突出这个功能&#xff0c;是根据老师视频上的描述&#xff0c;个人觉得很…

如何彻底搞懂组合(Composite)设计模式?

当我们在设计系统对象关系时&#xff0c;有时候会碰到这样一种场景&#xff0c;一个对象中包含了另一组对象&#xff0c;两者构成一种”部分-整体”的关联关系。 正如上图中所展示的&#xff0c;当我们面对这样一种对象关系时&#xff0c;通常都需要分别构建单独的访问方式&…

11.Redis之zset类型

1.zset类型基本介绍 有序描述的是&#xff1a;升序/降序 Set 集合 1.唯一 2. 无序 孙行者,行者孙, 者行孙 >同一只猴~~ List有序的 孙行者,行者孙, 者行孙 >不同的猴~~ zset 中的 member 仍然要求是唯一的!!(score 则可以重复) 排序的规则是啥? 给 zset 中的 member 同…

太狠了,凌晨5点面试。。

(关注数据结构和算法&#xff0c;了解更多新知识) 网上看到一网友发文说收到面试邀请&#xff0c;面试时间竟然是早晨5点&#xff0c;这是要猝死的节奏。有的网友说应该是下午 5 点&#xff0c;如果是下午 5 点直接写下午 5 点就行了&#xff0c;或者写 17 点也行&#xff0c;直…

中医理疗元宇宙 科技赋能中医药产业走向国际市场

基于380亿参数量&#xff0c;对中医药海量文本进行数据训练&#xff0c;实现方剂优化、机制阐释和新适应症的精准发现……日前在天津召开的数智赋能大健康产业新质生产力暨第四届中医药国际发展大会上&#xff0c;由天士力医药集团与华为云共同开发的“数智本草”中医药大模型正…

【再探】设计模式—职责链模式、命令模式及迭代器模式

行为型设计模式研究系统在运行时对象之间的交互&#xff0c;进一步明确对象的职责。有职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式及访问模式共11种。 1 职责链模式 需求&#xff1a;1) 请求能被多…

自动驾驶中的“ImageNet”?CVPR2024新作OccFeat:BEV 自监督预训练

论文标题&#xff1a; OccFeat: Self-supervised Occupancy Feature Prediction for Pretraining BEV Segmentation Networks 论文作者&#xff1a; Sophia Sirko-Galouchenko, Alexandre Boulch, Spyros Gidaris, Andrei Bursuc, Antonin Vobecky, Patrick Prez, Renaud Ma…

Nginx实战(安装部署、常用命令、反向代理、负载均衡、动静分离)

文章目录 1. nginx安装部署1.1 windows安装包1.2 linux-源码编译1.3 linux-docker安装 2. nginx介绍2.1 简介2.2 常用命令2.3 nginx运行原理2.3.1 mater和worker2.3.3 Nginx 的工作原理 2.4 nginx的基本配置文件2.4.1 location指令说明 3. nginx案例3.1 nginx-反向代理案例013.…

紧固件松动的危害及原因——SunTorque智能扭矩系统

智能扭矩系统-智能拧紧系统-扭矩自动控制系统-SunTorque 紧固件松动&#xff0c;这一看似微小的机械问题&#xff0c;实际上可能引发一系列严重的后果。在机械设备中&#xff0c;紧固件扮演着至关重要的角色&#xff0c;它们通过紧固作用将各个部件紧密连接在一起&#xff0c;…

招聘视角,看数据产品经理求职面试技巧

近几年负责数据产品团队&#xff0c;经历团队人员的变迁&#xff0c;进行过几百简历的筛选&#xff0c;近百场社招、校招面试。金三银四的求职/招聘季接近尾声&#xff0c;想把自己招聘数据产品经理的过程进行总结&#xff0c;分享给想找数据产品经理工作的求职者。 一、数据产…

【C语言】数据指针地址的取值、赋值、自增操作避坑

【C语言】数据指针的取值、赋值、自增操作避坑 文章目录 指针地址指针自增指针取值、赋值附录&#xff1a;压缩字符串、大小端格式转换压缩字符串浮点数压缩Packed-ASCII字符串 大小端转换什么是大端和小端数据传输中的大小端总结大小端转换函数 指针地址 请看下列代码&#…