如何在AWS上重置RDS主用户密码

时间:2020-02-23 14:32:14  来源:igfitidea点击:

Amazon RDS服务允许我们使用他们的API重置数据库实例主用户密码。在本教程中,我将逐步引导我们重设RDS主用户密码。如果我们不记得自己的AWS RDS实例主用户名,则可以使用RDS Web界面或者AWS CLI工具检索它。

如何在AWS控制台上重置RDS主密码

登录到AWS控制台并导航至:

Amazon RDS > Databases > DBName > Modify

在"修改"部分下,向下滚动,直到看到"新的主密码"。

输入新的RDS主密码,单击页面结尾处的"继续"。

选择何时应用修改对于即时更改应用选择"立即应用"。

如何通过CLI在AWS上重置RDS主用户密码

在AWS上重置RDS主用户密码有两个准备工作:已配置并正在运行RDS实例已安装AWS CLI工具

如果工作站上没有AWS CLI工具,请使用下面的教程进行安装:

如何在Linux Ubuntu/Debian/CentOS上安装和使用AWS CLI

安装并配置了工具后,请使用下一部分中给出的步骤继续重置RDS主用户密码。

获取RDS数据库实例详细信息

如果我们没有RDS主用户,则可以提取实例详细信息以获取用户名。为此,我们将使用" awsmodify-db-instance"命令。

参数" describe-db-instances"返回有关已配置的RDS实例的信息。

用法:

$aws rds describe-db-instances --region awsregionname
e.g
$aws rds describe-db-instances --region eu-west-1

上面的命令将列出RDS中的数据库实例。如果我们具有数据库实例的名称,请提供名称以过滤输出。

aws rds describe-db-instances --db-instance-identifier instance-name

在输出中,有一个部分显示了实例主用户AZ,端点等

{
    "DBInstances": [
        {
            "DBInstanceIdentifier": "instance-name",
            "DBInstanceClass": "db.t2.2xlarge",
            "Engine": "mysql",
            "DBInstanceStatus": "available",
            "MasterUsername": "dbadmin",
            "DBName": "AppsDB",
            "Endpoint": {
                "Address": "instance-name.cyo4n0yz0isg.eu-west-1.rds.amazonaws.com",
                "Port": 3306,
                "HostedZoneId": "Z29XKXAKYMONMX"
            },
            .....
            "AvailabilityZone": "eu-west-1a",
            .......
        }
    ]
}

重置RDS DB主用户密码

要重置/更改RDS主用户密码,我们将使用modify-db-instance参数。

modify-db-instance:该参数用于修改RDS数据库实例设置。使用此命令,可以通过在请求中指定这些参数和新值来更改一个或者多个数据库配置参数。

支持的选项包括:

--db-instance-identifier (string):
   - The DB instance identifier. This value is stored as a lowercase string
   - Must match the identifier of an existing DBInstance.

--master-user-password (string):
  - The new password for the master user. The password can include any printable ASCII character except "/", """, or "@".
  - Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible
  - Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response.

--apply-immediately:
- Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible.

请参见下面的示例:

aws rds modify-db-instance --db-instance-identifier instancename \
--master-user-password NEWPASSWORD --apply-immediately

几分钟后,我们应该会在清除的输出上看到密码更改的" PendingModifiedValues"。

...................
"PreferredMaintenanceWindow": "tue:04:34-tue:05:04",
            "PendingModifiedValues": {},
            "LatestRestorableTime": "2016-11-29T08:05:00Z",
....................

测试连接:

$mysql -u <MasterUsername>  -p  -h <EndpointAddress>
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5717
Server version: 5.6.40-log Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names Jan be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

现在,我们已经确认新的主用户密码可以正常工作,这意味着RDS实例主用户密码重置成功。