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

关系数据库服务(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.rhkb.cn/news/332258.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gfast:基于全新Go Frame 2.3+Vue3+Element Plus构建的全栈前后端分离管理系统

gfast&#xff1a;基于全新Go Frame 2.3Vue3Element Plus构建的全栈前后端分离管理系统 随着信息技术的飞速发展和数字化转型的深入&#xff0c;后台管理系统在企业信息化建设中扮演着越来越重要的角色。为了满足市场对于高效、灵活、安全后台管理系统的需求&#xff0c;gfast应…

零基础学Java第二十三天之网络编程Ⅱ

1. InetAddress类 用来表示主机的信息 练习&#xff1a; C:\Windows\system32\drivers\etc\ hosts 一个主机可以放多个个人网站 www.baidu.com/14.215.177.37 www.baidu.com/14.215.177.38 www.taobao.com/183.61.241.252 www.taobao.com/121.14.89.253 2. Socket 3.…

Windows11平台在VS2022上通过CMake安装C++绘图库ROOT库

Root库是一个功能强大的开源软件框架&#xff0c;用于数据分析、可视化和存储。它最初是为高能物理实验设计的&#xff0c;但现在已经广泛应用于各种科学领域和工程应用中。Root库使用C编写&#xff0c;提供了许多用于数据处理和分析的工具和算法。它的核心功能包括数据存储、数…

tcpdump源码分析

进入tcpdump.c&#xff08;函数入口&#xff09;之前&#xff0c;先看一些头文件netdissect.h里定义了一个数据结构struct netdissect_options来描述tcdpump支持的所有参数动作&#xff0c;每一个参数有对应的flag, 在tcpdump 的main 里面&#xff0c; 会根据用户的传入的参数来…

C#基础语言

​​​​ 目录 一个c# 程序主要包括以下部分&#xff1a;​​​​​​​ 标识符 C# 关键字 C# 数据类型 值类型&#xff08;Value types&#xff09; 引用类型&#xff08;Reference types&#xff09; 对象&#xff08;Object&#xff09;类型 动态&#xff08;Dynam…

总是等不是办法,向媒体投稿你得学会用新方法

初入信息宣传领域,我怀揣着对文字的热爱与传播价值的热情,肩负起了单位活动的宣传报道重任。那时的我,满脑子都是传统的投稿思维:精心撰写每一篇稿件,然后逐一搜寻各大媒体的投稿邮箱,一封封邮件满怀期待地发出,像播撒希望的种子,渴望在广袤的媒体土壤中生根发芽。然而,理想很丰…

YOLOv10尝鲜测试五分钟极简配置

最近清华大学团队又推出YOLOv10&#xff0c;真是好家伙了。 安装&#xff1a; pip install supervision githttps://github.com/THU-MIG/yolov10.git下载权重&#xff1a;https://github.com/THU-MIG/yolov10/releases/download/v1.0/yolov10n.pt 预测&#xff1a; from ult…

C++笔记:三种适配器(分别修饰函数、迭代器、容器)

Algorithms看不见Containers&#xff0c;对其一无所知。所以&#xff0c;它所需要的一切信息都必须从iterators取得&#xff0c;而iterators&#xff08;由Containers提供&#xff09;必须能够回答Algorithm的所有提问&#xff0c;才能搭配该Algorithm的所有操作。 1. C 标准库…

国内首个智能体生态大会!2024百度万象大会定档5月30日

最近&#xff0c;百度悄悄「上新」了几个AI神器。 百度搜索上线「互动」功能&#xff0c;可以实时问答&#xff0c;查询信息就像聊天一样简单&#xff0c;还可以艾特相关智能体&#xff0c;更细致精确地满足个性化需求&#xff0c;比如去新加坡旅游&#xff0c;可以让新加坡旅…

智慧校园学工管理系统的部署

学工体系思政服务该怎么规划建造&#xff1f;思政作为高校育人的中心使命&#xff0c;在做到让学生健康高兴生长的一起&#xff0c;也应满意学生生长成才的各类需求。使用技术为学生供给优质的信息化服务&#xff0c;是其间的有效途径。大数据让个性化教育成为可能&#xff0c;…

OTA在线旅行社系统架构:连接世界的科技纽带

随着互联网的快速发展和人们对旅行需求的不断增长&#xff0c;OTA&#xff08;Online Travel Agency&#xff09;在线旅行社成为了现代旅行业中的重要一环。OTA系统架构的设计和实现将对旅行行业产生深远影响。本文将探讨OTA在线旅行社系统架构的重要性和关键组成部分&#xff…

人工智能为犯罪地下世界带来了巨大的生产力提升

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

centos7.9用docker运行一个nginx容器

首先你的linux 系统里面已经安装好了docker&#xff0c;docker的安装教程看这个 1&#xff0c;下载nginx镜像 有很多文章会把镜像下载说成是拉取镜像&#xff0c; 我觉得就是下载的意思啊&#xff0c;搞不懂为什么要说拉取&#xff1f; docker pull nginx 下载最新版 Nginx …

开源的在线JSON数据可视化编辑器jsoncrack本地部署与远程访问

文章目录 1. 在Linux上使用Docker安装JSONCrack2. 安装Cpolar内网穿透工具3. 配置JSON Crack界面公网地址4. 远程访问 JSONCrack 界面5. 固定 JSONCrack公网地址 JSON Crack 是一款免费的开源数据可视化应用程序&#xff0c;能够将 JSON、YAML、XML、CSV 等数据格式可视化为交互…

【移动云】云端赋能——数字化时代游戏与工作的新境界

前言 在当今这个信息化、数字化的时代&#xff0c;云计算、大数据和人工智能等前沿技术已经深入到我们生活的方方面面。作为我国通信行业的领军企业&#xff0c;中国移动凭借其在5G技术领域的领先优势&#xff0c;推出了基于移动云计算技术的云业务品牌——移动云。移动云以云操…

Linux 的性能调优的思路

Linux操作系统是一个开源产品&#xff0c;也是一个开源软件的实践和应用平台&#xff0c;在这个平台下有无数的开源软件支撑&#xff0c;我们常见的apache、tomcat、mysql等。 开源软件的最大理念是自由、开放&#xff0c;那么Linux作为一个开源平台&#xff0c;最终要实现的是…

Overleaf中出现文字越界、越下届、没有正确分页、换页的原因和解决方法

在使用overleaf中&#xff0c;我偶尔会遇到如标题所说的情况&#xff0c;也如图所示&#xff1a; 后来发现&#xff0c;是因为这一页前面是一个表格&#xff0c;所以怀疑是表格的格式导致的。所以让chatgpt帮我更换了表格的格式&#xff0c;成功解决问题。 对于问题可能的成因…

<Python实际应用>用yolov9实现垃圾检测

公司一个项目需要在无人机巡检的画面中识别垃圾和汽车&#xff0c;正好听闻yolov9最新出炉&#xff0c;于是试了一下采用yolov9来搭建该项目 1.下载和部署 下载yolov9:GitHub地址&#xff1a;GitHub代码下载地址 配置环境可以参考之前关于yolov5的文章 Yolov5自学笔记之一-…

【二叉树】LeetCode.144:二叉树的前序遍历(小细节把握)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;初阶初阶结构刷题 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 1.题目描述&#xff1a;​编辑 2.问题分析&#xff1a; &#x1f354;函数解读&#xff1a; …

Linux系统启动原理

Linux系统启动原理及故障排除 Centos6系统启动过程 修改系统启动级别 vim /etc/inittabCentos7启动流程 加载BIOS信息&#xff0c;进行硬件检测 根据BIOS设定读取设备中的MBR&#xff0c;加载Boot loader 加载内核&#xff0c;内核初始化以后以模块的形式动态加载硬件 并且加…