如何在AWS上配置一个关系型数据库服务器

10,393 阅读3分钟

如何在AWS上配置一个关系型数据库服务器

你为什么要使用亚马逊网络服务来托管你的数据库,有很多原因。其中一个原因是,AWS提供了各种选项来扩展和保护你的数据库。

然而,浏览AWS的配置可能被证明是困难的,现有的文档并不总是用户友好的。

因此,本文将帮助你在AWS上设置一个关系型数据库服务器。我们将使用MySQL Workbench来连接到RDS。

设置一个安全组

第一步是登录你的AWS账户

AWS Sign in Page

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

AWS search for security groups

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

AWS create security group

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

AWS security group detaIls

另一个关键步骤是设置安全组的inboundoutbound规则。

Inbound rules 指定允许进入服务器的流量类型,而 决定离开MYSQL服务器的流量。outbound rules

默认情况下,入站和出站规则的sourcedestination 值被设置为any 。你可能想把它改成你的生产服务器的IP,这样数据库就只能从这个服务器发送和接收流量。

这使得数据库服务器更加安全。

AWS set inbound and outbound rules

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

Saving security group

设置一个关系型数据库服务器

在AWS管理控制台,在search bar 中输入RDS ,并选择RDS

Search for rds

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

Create database

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

Configuration page

Configuration page

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

Settings configuration

将其他default 的设置留在页面上,向下滚动到connectivity 部分。我们需要指定我们在本节前面创建的security group

Connectivity 部分,搜索security group ,并将其命名为helloworld-db 。我们还应该启用公共访问。

Search vpc

Select vpc security group

选择security group ,并继续进行下一个步骤。

Additional Configuration 部分,设置初始数据库的名称,如下图所示。

Set database name

最后,点击Create database 按钮

Create database button

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

View database credentials

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

Connecting parameters

将RDS服务器连接到MySQL工作台

MySQL工作台是MySQL服务器的一个集成开发环境。

我们按照下面的步骤来设置MYSQL服务器。

mysql workbench setup

mysql workbench setup

mysql workbench setup

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

mysql password

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

Execute sql query

用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与关系数据库建立连接。