如何在AWS上配置一个关系型数据库服务器
你为什么要使用亚马逊网络服务来托管你的数据库,有很多原因。其中一个原因是,AWS提供了各种选项来扩展和保护你的数据库。
然而,浏览AWS的配置可能被证明是困难的,现有的文档并不总是用户友好的。
因此,本文将帮助你在AWS上设置一个关系型数据库服务器。我们将使用MySQL Workbench来连接到RDS。
设置一个安全组
第一步是登录你的AWS账户

在search bar ,输入Security groups 。然后在Features 标签下选择Security groups 。

在新页面上,选择Create Security Groups ,如下图所示。

我们现在需要输入新安全组的详细信息,如下图所示。

另一个关键步骤是设置安全组的inbound 和outbound规则。
Inbound rules 指定允许进入服务器的流量类型,而 决定离开MYSQL服务器的流量。outbound rules
默认情况下,入站和出站规则的source 和destination 值被设置为any 。你可能想把它改成你的生产服务器的IP,这样数据库就只能从这个服务器发送和接收流量。
这使得数据库服务器更加安全。

保存new security group ,如下图所示。

设置一个关系型数据库服务器
在AWS管理控制台,在search bar 中输入RDS ,并选择RDS 。

在Create database 部分,选择Create database 选项。

要设置MySQL 数据库,导航到Engine Options ,选择MySQL 。在template 部分,选择free tier 选项。


在Settings 部分填写fields ,内容如下。

将其他default 的设置留在页面上,向下滚动到connectivity 部分。我们需要指定我们在本节前面创建的security group 。
在Connectivity 部分,搜索security group ,并将其命名为helloworld-db 。我们还应该启用公共访问。


选择security group ,并继续进行下一个步骤。
在Additional Configuration 部分,设置初始数据库的名称,如下图所示。

最后,点击Create database 按钮

在新的页面上,你会看到一个查看数据库凭证的选项。

这将显示你在创建数据库时输入的凭证。你可以通过点击数据库名称来查看其他参数。

将RDS服务器连接到MySQL工作台
MySQL工作台是MySQL服务器的一个集成开发环境。
我们按照下面的步骤来设置MYSQL服务器。



如果你没有设置密码,你会被提示这样做。

现在我们可以执行SQL查询。

用Python连接到RDS服务器
在本节中,我们将使用MySQL Connector Python模块与MySQL服务器通信。
我们需要以下参数来建立连接。
| 参数 | 说明 |
|---|---|
| 用户名 | 你在创建RDS时输入的用户名 |
| 密码 | 您在创建RDS时输入的密码 |
| 主机名 | 这可以在连接和安全部分看到。 |
| 数据库名称 | 你在附加信息部分输入的数据库名称。 |
接下来,我们应该使用下面的命令安装mysql-connector-python 库。
pip install mysql-connector-python
我们现在可以创建tables ,并执行CRUD 操作。
创建一个数据库表
import mysql.connector
try:
# Create Connection
connection = mysql.connector.connect(
host="helloworld.cb06vljwaire.us-east-1.rds.amazonaws.com",
database="mydatabase",
user="wiseman",
password="your password",
)
# SQL query to create a new table
create_table_query = """CREATE TABLE people (
id int(11) NOT NULL,
firstname varchar(250) NOT NULL,
lastname varchar(250) NOT NULL,
age INT NOT NULL,
PRIMARY KEY (Id)) """
cursor = connection.cursor()
result = cursor.execute(create_table_query)
except mysql.connector.Error as error:
print("Failed to create table in MySQL: {}".format(error))
finally:
if connection.is_connected():
cursor.close()
connection.close()
print("MySQL connection is closed")
在上面的代码中,我们创建了一个数据库表并使用connection 变量启动了一个连接。
传入mysql.connector.connect 方法的关键字参数是主机、数据库名称、用户和密码。
请注意,我们使用cursor 变量创建了一个连接游标。我们还在result 变量中执行了查询。
总结
在本教程中,我们已经成功地在亚马逊网络服务上配置了一个关系数据库服务器。我们还探讨了如何使用MySQL Workbench和Python与关系数据库建立连接。