

# 连接到 MariaDB 数据库实例
<a name="USER_ConnectToMariaDBInstance"></a>

Amazon RDS 配置数据库实例后，您就可以使用标准 MariaDB 客户端应用程序或实用程序与该实例连接。在连接字符串中，可以将数据库实例端点中的域名系统 (DNS) 地址指定为主机参数。您还可以将数据库实例端点中的端口号指定为端口参数。

可以使用 MySQL 命令行客户端等工具连接 Amazon RDS for MariaDB 数据库实例。有关使用 MySQL 命令行的更多信息，请参阅 MariaDB 文档中的 [mysql 命令行客户端](http://mariadb.com/kb/en/mariadb/mysql-command-line-client/)。您可以使用 Heidi 这款基于 GUI 的应用程序进行连接。有关更多信息，请参阅[下载 HeidiSQL](http://www.heidisql.com/download.php) 页面。有关安装 MySQL（包括 MySQL 命令行客户端）的信息，请参阅[安装和升级 MySQL](https://dev.mysql.com/doc/refman/8.0/en/installing.html)。

大多数 Linux 发行版包括 MariaDB 客户端，而不是 Oracle MySQL 客户端。要在 Amazon Linux 2023 上安装 MySQL 命令行客户端，请运行以下命令：

```
sudo dnf install mariadb105
```

要在 Amazon Linux 2 上安装 MySQL 命令行客户端，请运行以下命令：

```
sudo yum install mariadb
```

要在大多数基于 DEB 的 Linux 发行版上安装 MySQL 命令行客户端，请运行以下命令。

```
apt-get install mariadb-client
```

要检查 MySQL 命令行客户端的版本，请运行以下命令。

```
mysql --version
```

要阅读当前客户端版本的 MySQL 文档，请运行以下命令。

```
man mysql
```

要从基于 Amazon VPC 的 Virtual Private Cloud (VPC) 外部连接到数据库实例，该数据库实例必须可公开访问。此外，必须使用数据库实例安全组的入站规则授予访问权限，并且必须满足其他要求。有关更多信息，请参阅“[无法连接到 Amazon RDS 数据库实例](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)”。

可以在连接到 MariaDB 数据库实例时使用 SSL 加密功能。有关信息，请参阅[Amazon RDS 上 MariaDB 数据库实例的 SSL/TLS 支持](MariaDB.Concepts.SSLSupport.md)。

要查找并连接到 RDS for MariaDB 数据库实例，请参阅以下主题。

**Topics**
+ [查找 MariaDB 数据库实例的连接信息](USER_ConnectToMariaDBInstance.EndpointAndPort.md)
+ [从 RDS for MariaDB 的 MySQL 命令行客户端进行连接（未加密）](USER_ConnectToMariaDBInstance.CLI.md)
+ [使用 AWS JDBC 驱动程序和 AWS Python 驱动程序连接到 RDS for MariaDB；](MariaDB.Connecting.Drivers.md)
+ [排除与 MariaDB 数据库实例的连接故障](USER_ConnectToMariaDBInstance.Troubleshooting.md)

# 查找 MariaDB 数据库实例的连接信息
<a name="USER_ConnectToMariaDBInstance.EndpointAndPort"></a>

数据库实例的连接信息包括其端点、端口和有效数据库用户，如主用户。例如，假设端点值为 `mydb.123456789012.us-east-1.rds.amazonaws.com`。在这种情况下，端口值是 `3306`，数据库用户是 `admin`。鉴于此信息，您可以在连接字符串中指定以下值：
+ 对于主机或主机名或 DNS 名称，请指定 `mydb.123456789012.us-east-1.rds.amazonaws.com`。
+ 对于端口，请指定 `3306`。
+ 对于用户，请指定 `admin`。

要连接到数据库实例，请使用 MariaDB 数据库引擎的任何客户端。例如，您可以使用 MySQL 命令行客户端或 MySQL Workbench。

要查找数据库实例的连接信息，您可以使用AWS 管理控制台、AWS Command Line Interface（AWS CLI）[describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令，或 Amazon RDS API [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 操作列出其详细信息。

## 控制台
<a name="USER_ConnectToMariaDBInstance.EndpointAndPort.Console"></a>

**在 AWS 管理控制台 中查找数据库实例的连接信息**

1. 登录AWS 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择 **数据库** 以显示数据库实例的列表。

1. 选择 MariaDB 数据库实例名称以显示其详细信息。

1. 在**连接和安全性**选项卡上，复制端点。另请注意端口号。您需要端点和端口号才能连接到数据库实例。  
![\[Amazon RDS 控制台中数据库实例的端点和端口。\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/endpoint-port.png)

1. 如果需要查找主用户名，请选择 **Configuration (配置)** 选项卡并查看 **Master username (主用户名)** 值。

## AWS CLI
<a name="USER_ConnectToMariaDBInstance.EndpointAndPort.CLI"></a>

要使用 AWS CLI 查找 MariaDB 数据库实例的相关连接信息，请运行 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令。在调用中，查询数据库实例 ID、端点、端口和主用户名。

对于 Linux、macOS 或 Unix：

```
aws rds describe-db-instances \
  --filters "Name=engine,Values=mariadb" \
  --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"
```

对于 Windows：

```
aws rds describe-db-instances ^
  --filters "Name=engine,Values=mariadb" ^
  --query "*[].[DBInstanceIdentifier,Endpoint.Address,Endpoint.Port,MasterUsername]"
```

您的输出应类似于以下内容。

```
[
    [
        "mydb1",
        "mydb1.123456789012.us-east-1.rds.amazonaws.com",
        3306,
        "admin"
    ],
    [
        "mydb2",
        "mydb2.123456789012.us-east-1.rds.amazonaws.com",
        3306,
        "admin"
    ]
]
```

## RDS API
<a name="USER_ConnectToMariaDBInstance.EndpointAndPort.API"></a>

要使用 Amazon RDS API 查找数据库实例的连接信息，请调用 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 操作。在输出中，找到端点地址、端点端口和主用户名的值。

# 从 RDS for MariaDB 的 MySQL 命令行客户端进行连接（未加密）
<a name="USER_ConnectToMariaDBInstance.CLI"></a>

**重要**  
仅当客户端和服务器位于同一 VPC 中，并且网络受信任时，才会使用未加密的 MySQL 连接。有关使用加密连接的信息，请参阅 [从 MySQL 命令行客户端使用 SSL/TLS 连接到 Amazon RDS 上的 MariaDB 数据库实例（已加密）](USER_ConnectToMariaDBInstanceSSL.CLI.md)。

要使用 MySQL 命令行客户端连接到数据库实例，请在客户端计算机上的命令提示符处输入以下命令。执行此操作时，您将连接到 MariaDB 数据库实例上的数据库。将 *`<endpoint>`* 替换为数据库实例的 DNS 名称（端点）；并替换用于 *`<mymasteruser>`* 的主用户名。提示输入密码时，提供所使用的主密码。

```
mysql -h <endpoint> -P 3306 -u <mymasteruser> -p
```

在输入用户的密码后，您将看到类似于以下内容的输出。

```
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 10.6.10-MariaDB-log Source distribution
 
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
  
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  
MariaDB [(none)]>
```

# 使用 AWS JDBC 驱动程序和 AWS Python 驱动程序连接到 RDS for MariaDB；
<a name="MariaDB.Connecting.Drivers"></a>

使用 AWS JDBC 驱动程序和 AWS Python 驱动程序连接到 RDS for MariaDB 数据库实例。有关更多信息，请参阅以下主题。

**Topics**
+ [使用 Amazon Web Services（AWS）JDBC 驱动程序连接到 RDS for MariaDB](#MariaDB.Connecting.JDBCDriver)
+ [使用 Amazon Web Services（AWS）Python 驱动程序连接到 RDS for MariaDB](#MariaDB.Connecting.PythonDriver)

## 使用 Amazon Web Services（AWS）JDBC 驱动程序连接到 RDS for MariaDB
<a name="MariaDB.Connecting.JDBCDriver"></a>

Amazon Web Services（AWS）JDBC 驱动程序已重新设计为高级 JDBC 包装器。此包装器是对现有 JDBC 驱动程序各项功能的补充和扩展。该驱动程序与社区 MySQL Connector/J 驱动程序和社区 MariaDB Connector/J 驱动程序兼容。

要安装 AWS JDBC 驱动程序，请附加 AWS JDBC 驱动程序.jar 文件（位于应用程序 `CLASSPATH` 中），并保留对相应社区驱动程序的引用。按如下方式更新相应的连接 URL 前缀：
+ `jdbc:mysql://`到 `jdbc:aws-wrapper:mysql://`。
+ `jdbc:mariadb://`到 `jdbc:aws-wrapper:mariadb://`。

有关 AWS JDBC 驱动程序的更多信息及其完整使用说明，请参阅 [Amazon Web Services (AWS) JDBC Driver GitHub 存储库](https://github.com/awslabs/aws-advanced-jdbc-wrapper)。

## 使用 Amazon Web Services（AWS）Python 驱动程序连接到 RDS for MariaDB
<a name="MariaDB.Connecting.PythonDriver"></a>

Amazon Web Services（AWS）驱动程序设计为高级 Python 包装器。这款包装器是对开源 Psycopg 驱动程序的各项功能的补充和扩展。AWS Python 驱动程序支持 Python 3.8 及更高版本。您可以使用 `pip` 命令和 `psycopg` 开源软件包安装 `aws-advanced-python-wrapper` 程序包。

有关 AWS JDBC 驱动程序的更多信息及其完整使用说明，请参阅 [Amazon Web Services（AWS）Python 驱动程序 GitHub 存储库](https://github.com/awslabs/aws-advanced-python-wrapper)。

# 排除与 MariaDB 数据库实例的连接故障
<a name="USER_ConnectToMariaDBInstance.Troubleshooting"></a>

导致新数据库实例连接故障的两个常见原因如下：
+ 数据库实例是使用安全组创建的，而该安全组无法授权来自运行 MariaDB 应用程序或实用程序的设备或 Amazon EC2 实例的连接。数据库实例必须具有授权进行连接的 VPC 安全组。有关更多信息，请参阅 [Amazon VPC 和 Amazon RDS](USER_VPC.md)。

  您可以在安全组中添加或编辑入站规则。对于 **Source**，选择 **My IP**。这允许从浏览器中检测到的 IP 地址访问数据库实例。
+ 数据库实例是使用默认端口 3306 创建的，而您公司的防火墙规则不允许公司网络中的设备连接到该端口。要修复此故障，请重新创建使用不同端口的实例。

有关连接问题的更多信息，请参阅[无法连接到 Amazon RDS 数据库实例](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting)。