

# MySQL DB 인스턴스에 연결
<a name="USER_ConnectToInstance"></a>

 MySQL 데이터베이스 엔진을 실행하는 DB 인스턴스에 연결하려면 우선 DB 인스턴스를 생성해야 합니다. 자세한 정보는 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요. Amazon RDS가 DB 인스턴스를 프로비저닝한 후에는 표준 MySQL 클라이언트 애플리케이션 또는 유틸리티를 사용하여 인스턴스에 연결할 수 있습니다. 연결 문자열에는 호스트 파라미터로 DB 인스턴스 엔드포인트의 DNS 주소와 포트 파라미터로 DB 인스턴스 엔드포인트의 포트 번호를 지정합니다.

RDS DB 인스턴스에 인증하려면, MySQL 및 AWS Identity and Access Management(IAM) 데이터베이스 인증의 인증 방법 중 하나를 사용할 수 있습니다.
+ MySQL의 인증 방법 중 하나를 사용하는 MySQL 인증 방법을 확인하려면, MySQL의 [인증 방법](https://dev.mysql.com/doc/internals/en/authentication-method.html)을 참조하십시오.
+ IAM 데이터베이스 인증을 사용하는 MySQL 인증 방법을 확인하려면 [MariaDB, MySQL 및 PostgreSQL IAM 데이터베이스 인증](UsingWithRDS.IAMDBAuth.md) 단원을 참조하십시오.

MySQL 명령줄 클라이언트 같은 도구를 사용하여 MySQL DB 인스턴스에 연결할 수 있습니다. MySQL 명령줄 클라이언트 사용에 대한 자세한 내용은 MySQL 문서의 [mysql - MySQL 명령줄 클라이언트](https://dev.mysql.com/doc/refman/8.0/en/mysql.html)를 참조하세요. 연결에 사용할 수 있는 GUI 기반 애플리케이션 중 하나는 MySQL Workbench입니다. 자세한 정보는 [ MySQL Workbench 다운로드](http://dev.mysql.com/downloads/workbench/) 페이지 단원을 참조하십시오. MySQL 설치(MySQL 명령줄 클라이언트 포함)에 대한 정보는 [MySQL 설치 및 업그레이드](https://dev.mysql.com/doc/refman/8.0/en/installing.html)를 참조하세요.

Amazon VPC 외부에서 DB 인스턴스에 연결하려면 DB 인스턴스에 공개적으로 액세스할 수 있어야 하고, DB 인스턴스 보안 그룹의 인바운드 규칙을 사용하여 액세스 권한을 부여해야 하며, 기타 요구 사항을 충족해야 합니다. 자세한 내용은 [Amazon RDS DB 인스턴스에 연결할 수 없음](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting) 단원을 참조하십시오.

MySQL DB 인스턴스로의 연결에 보안 소켓 계층(SSL) 또는 전송 계층 보안(TLS) 암호화를 사용할 수 있습니다. 자세한 내용은 [Amazon RDS의 MySQL DB 인스턴스에 대한 SSL/TLS 지원](MySQL.Concepts.SSLSupport.md)을 참조하세요. AWS Identity and Access Management(IAM) 데이터베이스 인증을 사용하는 경우 SSL/TLS 연결을 사용해야 합니다. 자세한 내용은 [MariaDB, MySQL 및 PostgreSQL IAM 데이터베이스 인증](UsingWithRDS.IAMDBAuth.md)을 참조하세요.

웹 서버에서 DB 인스턴스에 연결할 수도 있습니다. 자세한 내용은 [자습서: 웹 서버 및 Amazon RDS DB 인스턴스 생성](TUT_WebAppWithRDS.md) 섹션을 참조하세요.

**참고**  
SSL을 사용한 MariaDB DB 인스턴스 연결에 대한 자세한 내용은 [MariaDB DB 인스턴스에 연결](USER_ConnectToMariaDBInstance.md) 단원을 참조하십시오.

RDS for MySQL DB 인스턴스를 찾아 연결하려면 다음 주제를 참조하세요.

**Topics**
+ [RDS for MySQL DB 인스턴스에 대한 연결 정보 찾기](USER_ConnectToInstance.EndpointAndPort.md)
+ [MySQL 명령줄 클라이언트 설치](mysql-install-cli.md)
+ [MySQL 명령줄 클라이언트에서 연결(암호화되지 않음)](USER_ConnectToInstance.CLI.md)
+ [MySQL Workbench에서 연결](USER_ConnectToInstance.MySQLWorkbench.md)
+ [AWS JDBC 드라이버, AWS Python 드라이버 및 MySQL용 AWS ODBC 드라이버를 사용하여 RDS for MySQL에 연결](MySQL.Connecting.Drivers.md)
+ [MySQL DB 인스턴스에 대한 연결 문제 해결](USER_ConnectToInstance.Troubleshooting.md)

# RDS for MySQL DB 인스턴스에 대한 연결 정보 찾기
<a name="USER_ConnectToInstance.EndpointAndPort"></a>

DB 인스턴스의 연결 정보에는 엔드포인트, 포트 및 유효한 데이터베이스 사용자(예: 마스터 사용자)가 포함됩니다. 예를 들어 엔드포인트 값이 `mydb.123456789012.us-east-1.rds.amazonaws.com`이라고 가정합니다. 이 경우 포트 값은 `3306`이고 데이터베이스 사용자는 `admin`입니다. 이 정보를 바탕으로 연결 문자열에 다음 값을 지정합니다.
+ 호스트 또는 호스트 이름 또는 DNS 이름에 `mydb.123456789012.us-east-1.rds.amazonaws.com`을 지정합니다.
+ 포트에 대해 `3306`을 지정합니다.
+ 사용자에 `admin`을 지정합니다.

DB 인스턴스에 연결하려면 MySQL DB 엔진에 대해 임의의 클라이언트를 사용합니다. 예를 들어 MySQL 명령줄 클라이언트 또는 MySQL 워크벤치를 사용할 수 있습니다.

DB 인스턴스에 대한 연결 정보를 찾으려면 AWS Management Console, 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_ConnectToInstance.EndpointAndPort.Console"></a>

**AWS Management Console에서 DB 인스턴스에 대한 연결 정보를 찾으려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 [**데이터베이스(Database)**] 를 선택하여 DB 인스턴스 목록을 표시합니다.

1. MySQL DB 인스턴스의 이름을 선택하여 세부 정보를 표시합니다.

1. **Connectivity & security(연결 및 보안)** 탭에서 엔드포인트를 복사합니다. 또한 포트 번호를 적어 둡니다. DB 인스턴스에 연결하려면 엔드포인트와 포트 번호가 모두 필요합니다.  
![\[Amazon RDS 콘솔 내 DB 인스턴스의 엔드포인트 및 포트.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/endpoint-port.png)

1. 마스터 사용자 이름을 찾아야 하는 경우 [**구성(Configuration)**] 탭을 선택하고 [**마스터 사용자 이름(Master username)**] 값을 확인합니다.

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

AWS CLI를 사용하여 MySQL DB 인스턴스의 연결 정보를 찾으려면 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 명령을 실행합니다. 이 호출에서 DB 인스턴스 ID, 엔드포인트, 포트 및 마스터 사용자 이름을 쿼리합니다.

대상 LinuxmacOS, 또는Unix:

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

Windows의 경우:

```
aws rds describe-db-instances ^
  --filters "Name=engine,Values=mysql" ^
  --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_ConnectToInstance.EndpointAndPort.API"></a>

Amazon RDS API를 사용하여 DB 인스턴스의 연결 정보를 찾으려면 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 작업을 호출합니다. 출력에서 엔드포인트 주소, 엔드포인트 포트 및 마스터 사용자 이름의 값을 찾습니다.

# MySQL 명령줄 클라이언트 설치
<a name="mysql-install-cli"></a>

대부분의 Linux 배포에는 Oracle MySQL 클라이언트 대신 MariaDB 클라이언트가 포함됩니다. 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
```

# MySQL 명령줄 클라이언트에서 연결(암호화되지 않음)
<a name="USER_ConnectToInstance.CLI"></a>

**중요**  
클라이언트와 서버가 동일한 VPC에 있고 네트워크를 신뢰할 수 있는 경우에만 암호화되지 않은 MySQL 연결을 사용합니다. 암호화된 연결 사용에 대한 자세한 내용은 [MySQL 명령줄 클라이언트(암호화됨)에서 SSL/TLS를 사용하여 Amazon RDS의 MySQL DB 인스턴스에 연결](USER_ConnectToInstanceSSL.CLI.md) 섹션을 참조하세요.

MySQL 명령줄 클라이언트를 사용하여 DB 인스턴스에 연결하려면 클라이언트 컴퓨터의 명령 프롬프트에서 다음 명령을 입력합니다. -h 파라미터의 경우 해당 DB 인스턴스의 DNS 이름(엔드포인트)으로 대체합니다. -p 파라미터에는 DB 인스턴스의 포트로 대체합니다. -u 파라미터에는 마스터 사용자와 같이 유효한 데이터베이스 사용자의 사용자 이름으로 대체합니다. 입력 프롬프트가 표시되면 마스터 사용자 암호를 입력합니다.

```
mysql -h mysql–instance1.123456789012.us-east-1.rds.amazonaws.com -P 3306 -u mymasteruser -p
```

사용자에 대한 암호를 입력하면 다음과 유사한 출력이 나타납니다.

```
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9738
Server version: 8.0.28 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
```

# MySQL Workbench에서 연결
<a name="USER_ConnectToInstance.MySQLWorkbench"></a>

**MySQL Workbench에서 연결하려면**

1. [MySQL Workbench 다운로드](http://dev.mysql.com/downloads/workbench/)에서 MySQL Workbench를 다운로드하고 설치합니다.

1. MySQL Workbench를 엽니다.  
![\[MySQL Workbench의 시작 화면.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/mysql-workbench-main.png)

1. **데이터베이스**에서 **Manage Connections(연결 관리)**를 선택합니다.

1. **Manage Server Connections(서버 연결 관리)** 창에서 **새로 생성**을 선택합니다.

1. **Connect to Database(데이터베이스에 연결)** 창에 다음 정보를 입력합니다.
   + **Stored Connection(저장된 연결)** – 연결에 **MyDB**와 같은 이름을 입력합니다.
   + **Hostname(호스트 이름)** – DB 인스턴스 엔드포인트를 입력합니다.
   + **포트** – DB 인스턴스에서 사용한 포트를 입력합니다.
   + **사용자 이름** – 마스터 사용자와 같이 유효한 데이터이스 사용자의 사용자 이름을 입력합니다.
   + **암호** – 선택적으로 **Store in Vault(볼트에 저장)**를 선택한 후 사용자의 암호를 입력하고 저장합니다.

   창은 다음과 비슷하게 표시됩니다.  
![\[MySQL Workbench의 서버 연결 관리 창.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/mysql-workbench-connect.png)

   MySQL Workbench의 기능을 사용하여 연결을 사용자 지정할 수 있습니다. 예를 들어, **SSL** 탭에서 SSL/TLS 연결을 구성할 수 있습니다. MySQL Workbench 사용에 대한 자세한 내용은 [MySQL Workbench 설명서](https://dev.mysql.com/doc/workbench/en/)를 참조하십시오. SSL/TLS를 사용하여 MySQL DB 인스턴스로의 클라이언트 연결을 암호화하려면 [SSL/TLS를 사용하여 Amazon RDS의 MySQL DB 인스턴스에 대한 클라이언트 연결 암호화](mysql-ssl-connections.md) 섹션을 참조하세요.

1. 선택적으로 **연결 테스트**를 선택하여 DB 인스턴스에 대한 연결이 성공적인지 확인합니다.

1. **닫기**를 선택합니다.

1. **데이터베이스**에서 **Connect to Database(데이터베이스에 연결)**를 선택합니다.

1. **Stored Connection(저장된 연결)**에서 연결을 선택합니다.

1. **확인**을 선택합니다.

# AWS JDBC 드라이버, AWS Python 드라이버 및 MySQL용 AWS ODBC 드라이버를 사용하여 RDS for MySQL에 연결
<a name="MySQL.Connecting.Drivers"></a>

AWS JDBC 드라이버, AWS Python 드라이버 및 MySQL용 AWS ODBC 드라이버를 사용하여 RDS for MySQL DB 인스턴스에 연결합니다. 자세한 내용은 다음 항목을 참조하세요.

**Topics**
+ [Amazon Web Services(AWS) JDBC 드라이버를 사용하여 RDS for MySQL에 연결](#MySQL.Connecting.JDBCDriver)
+ [Amazon Web Services(AWS) Python 드라이버를 사용하여 RDS for MySQL에 연결](#MySQL.Connecting.PythonDriver)
+ [MySQL용 Amazon Web Services(AWS) ODBC 드라이버를 사용하여 RDS for MySQL에 연결](#USER_ConnectToInstance.ODBCDriverMySQL)

## Amazon Web Services(AWS) JDBC 드라이버를 사용하여 RDS for MySQL에 연결
<a name="MySQL.Connecting.JDBCDriver"></a>

Amazon Web Services(AWS) JDBC 드라이버는 고급 JDBC 래퍼로 설계되었습니다. 이 래퍼는 기존 JDBC 드라이버의 기능을 보완하고 확장합니다. 이 드라이버는 커뮤니티 MySQL Connector/J 드라이버 및 커뮤니티 MariaDB Connector/J 드라이버와 드롭인 호환됩니다.

AWS JDBC 드라이버를 설치하려면 `CLASSPATH` 애플리케이션에 있는 AWS JDBC 드라이버 .jar 파일을 추가하고 해당 커뮤니티 드라이버에 대한 참조를 보관해 두세요. 다음과 같이 해당 연결 URL 접두사를 업데이트하세요.
+ `jdbc:mysql://`\$1`jdbc:aws-wrapper:mysql://`
+ `jdbc:mariadb://`\$1`jdbc:aws-wrapper:mariadb://`

AWS JDBC 드라이버에 대한 자세한 내용 및 사용 방법에 대한 전체 지침은 [Amazon Web Services (AWS) JDBC Driver GitHub repository](https://github.com/awslabs/aws-advanced-jdbc-wrapper)를 참조하세요.

## Amazon Web Services(AWS) Python 드라이버를 사용하여 RDS for MySQL에 연결
<a name="MySQL.Connecting.PythonDriver"></a>

Amazon Web Services(AWS) Python 드라이버는 고급 Python 래퍼로 설계되었습니다. 이 래퍼는 오픈 소스 Psycopg 드라이버의 기능을 보완하고 확장합니다. AWS Python 드라이버는 Python 버전 3.8 이상을 지원합니다. `pip` 명령을 사용하여 `psycopg` 오픈 소스 패키지와 함께 `aws-advanced-python-wrapper` 패키지를 설치할 수 있습니다.

AWS Python 드라이버에 대한 자세한 내용 및 사용 방법에 대한 전체 지침은 [Amazon Web Services (AWS) JDBC Python GitHub repository](https://github.com/awslabs/aws-advanced-python-wrapper)를 참조하세요.

## MySQL용 Amazon Web Services(AWS) ODBC 드라이버를 사용하여 RDS for MySQL에 연결
<a name="USER_ConnectToInstance.ODBCDriverMySQL"></a>

MySQL용 AWS ODBC 드라이버는 RDS for MySQL의 고가용성을 위해 설계된 클라이언트 드라이버입니다. 드라이버는 MySQL Connector/ODBC 드라이버와 함께 존재할 수 있으며 동일한 워크플로와 호환됩니다.

MySQL용 AWS ODBC 드라이버에 대한 자세한 내용 및 설치와 사용에 대한 전체 지침은 [MySQL용 Amazon Web Services(AWS) ODBC 드라이버](https://github.com/aws/aws-mysql-odbc) GitHub 리포지토리를 참조하세요.

# MySQL DB 인스턴스에 대한 연결 문제 해결
<a name="USER_ConnectToInstance.Troubleshooting"></a>

새로운 DB 인스턴스의 연결 오류가 발생하는 두 가지 공통 원인은 다음과 같습니다.
+ 보안 그룹을 사용하여 DB 인스턴스를 생성하였지만 이 보안 그룹이 MySQL 애플리케이션 또는 유틸리티를 실행 중인 디바이스나 Amazon EC2 인스턴스에서 연결을 승인하지 않는 경우. DB 인스턴스에 연결 권한을 부여하는 VPC 보안 그룹이 있어야 합니다. 자세한 내용은 [Amazon VPC 및 Amazon RDS](USER_VPC.md) 단원을 참조하십시오.

  보안 그룹에서 인바운드 규칙을 추가하거나 편집할 수 있습니다. **소스**에서 **내 IP**를 선택합니다. 이렇게 하면 브라우저에서 감지된 IP 주소에서 DB 인스턴스에 액세스할 수 있습니다.
+ 포트 3306을 사용해 DB 인스턴스를 만들었는데 기업 방화벽 규칙에 따라 기업 네트워크의 디바이스에서 해당 포트에 연결하는 것이 차단된 경우. 이 오류를 수정하려면 인스턴스를 다른 포트로 다시 만들어야 합니다.

연결 문제에 대한 자세한 내용은 [Amazon RDS DB 인스턴스에 연결할 수 없음](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting) 단원을 참조하십시오.