빠른 시작: Azure CLI를 사용하여 Azure Database for MySQL - 유연한 서버의 인스턴스 만들기

적용 대상: Azure Database for MySQL - 유연한 서버

이 빠른 시작에서는 Azure Cloud Shell에서 Azure CLI 명령을 사용하여 5분 안에 Azure Database for MySQL - 유연한 서버의 인스턴스를 만드는 방법을 보여 줍니다.

Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다. 현재 Azure 체험 계정을 사용하면 Azure Database for MySQL - 유연한 서버를 12개월 동안 무료로 사용해 볼 수 있습니다. 자세한 내용은 Azure Database for MySQL - 유연한 서버 체험을 참조하세요.

‘Azure Cloud Shell 열기’

Azure Cloud Shell은 이 문서에 설명된 단계를 실행하는 데 사용할 수 있는 무료 대화형 셸 입니다. Cloud Shell에서 일반적인 Azure 도구가 미리 설치되고 계정과 함께 사용하도록 구성됩니다.

Cloud Shell을 열려면 코드 예제의 오른쪽 위 모서리에서 [시도]를 선택합니다.

또한 https://shell.azure.com/bash로 이동하여 별도의 브라우저 탭에서 Cloud Shell을 열 수도 있습니다. 복사를 선택하여 코드 블록의 내용을 복사합니다. Cloud Shell에서 코드를 붙여넣고 Enter 키를 선택하여 실행합니다.

Azure CLI를 설치하고 사용하려는 경우 이 빠른 시작에는 Azure CLI 버전 2.0 이상이 필요합니다. Azure CLI 설치 버전을 찾으려면 를 실행합니다 az --version. 설치 또는 업그레이드가 필요한 경우, Azure CLI 설치를 참조하세요.

필수 조건

az login 명령을 사용하여 계정에 로그인합니다. 속성을 확인합니다 id . 이 속성은 id Azure 계정의 구독 ID를 참조합니다.

az login

az account set 명령을 사용하여 Azure 계정에서 특정 구독을 선택합니다. 명령에서 subscription 인수에 대한 값으로 사용할 az login 출력의 id 값을 적어 둡니다.

여러 구독이 있는 경우 리소스를 청구할 구독을 선택합니다. 구독 목록을 얻으려면 az account list를 사용합니다.

az account set --subscription <subscription ID>

Azure Database for MySQL 유연한 서버 만들기

명령을 사용하여 Azure 리소스 그룹을 만듭니다az group create. 그런 다음, 리소스 그룹 내에 Azure Database for MySQL 유연한 서버를 만듭니다. 고유한 이름을 제공해야 합니다. 다음 예제에서는 eastus2 위치에 myresourcegroup이라는 리소스 그룹을 만듭니다.

az group create --name myresourcegroup --location eastus2

명령을 사용하여 Azure Database for MySQL 유연한 서버를 만듭니다 az mysql flexible-server create . 서버는 여러 데이터베이스를 포함할 수 있습니다. 다음 명령은 Azure CLI의 로컬 컨텍스트에서 서비스 기본값 및 값을 사용하여 서버를 만듭니다.

az mysql flexible-server create

만든 서버에는 다음과 같은 특성이 있습니다.

  • 자동 생성된 서버 이름, 관리자 사용자 이름, 관리자 암호 및 리소스 그룹 이름(아직 로컬 컨텍스트에 지정되지 않은 경우)이며 리소스 그룹과 동일한 위치에 있습니다.
  • 다시 기본 서버 구성에 대한 서비스 기본값은 컴퓨팅 계층(버스트 가능), 컴퓨팅 크기/SKU(B1MS), 백업 보존 기간(7일) 및 MySQL 버전(5.7)입니다.
  • 기본 연결 방법은 자동 생성된 가상 네트워크 및 서브넷을 사용하는 프라이빗 액세스(VNet 통합)입니다.

참고 항목

서버를 만든 후에는 연결 방법을 변경할 수 없습니다. 예를 들어 서버를 만들 때 프라이빗 액세스(VNet 통합)를 선택한 경우 배포 후에는 공용 액세스(허용된 IP 주소)로 설정을 변경할 수 없습니다. 가상 네트워크 통합을 사용하여 서버에 안전하게 액세스할 수 있는 프라이빗 액세스 권한이 있는 서버를 만드는 것이 좋습니다. 프라이빗 액세스에 대한 자세한 내용은 네트워킹 개념에 대한 문서를 참조하세요.

기본값을 변경하려면 구성 가능한 Azure CLI 매개 변수의 전체 목록에 대한 Azure CLI 참조 설명서를 참조하세요.

샘플 출력은 다음과 같습니다.

Creating Resource Group 'groupXXXXXXXXXX'...
Creating new vnet "serverXXXXXXXXXVNET" in resource group "groupXXXXXXXXXX"...
Creating new subnet "serverXXXXXXXXXSubnet" in resource group "groupXXXXXXXXXX" and delegating it to "Microsoft.DBforMySQL/flexibleServers"...
Creating MySQL Server 'serverXXXXXXXXX' in group 'groupXXXXXXXXXX'...
Your server 'serverXXXXXXXXX' is using SKU 'Standard_B1ms' (Paid Tier). For pricing details, see https://aka.ms/mysql-pricing.
Creating MySQL database 'flexibleserverdb'...
Make a note of your password. If you forget your password, reset the password by running 'az mysql flexible-server update -n serverXXXXXXXXX -g groupXXXXXXXXXX -p <new-password>'.
{
  "connectionString": "server=serverXXXXXXXXX.mysql.database.azure.com;database=flexibleserverdb;uid=secureusername;pwd=securepasswordstring",
  "databaseName": "flexibleserverdb",
  "host": "serverXXXXXXXXX.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/groupXXXXXXXXXX/providers/Microsoft.DBforMySQL/flexibleServers/serverXXXXXXXXX",
  "location": "East US 2",
  "password": "securepasswordstring",
  "resourceGroup": "groupXXXXXXXXXX",
  "skuname": "Standard_B1ms",
  "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/groupXXXXXXXXXX/providers/Microsoft.Network/virtualNetworks/serverXXXXXXXXXVNET/subnets/serverXXXXXXXXXSubnet",
  "username": "secureusername",
  "version": "5.7"
}

기본값을 변경하려면 구성 가능한 Azure CLI 매개 변수의 전체 목록에 대한 Azure CLI 참조 설명서를 참조하세요.

데이터베이스 만들기

데이터베이스를 아직 만들지 않은 경우 다음 명령을 실행하여 newdatabase라는 데이터베이스를 만듭니다.

az mysql flexible-server db create -d newdatabase

참고 항목

Azure Database for MySQL에 대한 커넥트 - 유연한 서버는 포트 3306을 사용하여 통신합니다. 회사 네트워크 내에서 연결하려고 하면 포트 3306을 통한 아웃바운드 트래픽이 허용되지 않을 수 있습니다. IT 부서에서 포트 3306을 열지 않으면 서버에 연결할 수 없습니다.

연결 정보 가져오기

서버에 연결하려면 호스트 정보를 제공하고 자격 증명에 액세스해야 합니다.

az mysql flexible-server show --resource-group myresourcegroup --name mydemoserver

결과는 JSON 형식입니다. 및 에 대한 fullyQualifiedDomainNameadministratorLogin값을 기록해 둡다. 다음은 JSON 출력의 예입니다.

{
  "administratorLogin": "myadminusername",
  "administratorLoginPassword": null,
  "delegatedSubnetArguments": {
    "subnetArmResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/mydemoserverVNET/subnets/mydemoserverSubnet"
  },
  "fullyQualifiedDomainName": "mydemoserver.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforMySQL/flexibleServers/mydemoserver",
  "location": "East US 2",
  "name": "mydemoserver",
  "publicNetworkAccess": "Disabled",
  "resourceGroup": "myresourcegroup",
  "sku": {
    "capacity": 0,
    "name": "Standard_B1ms",
    "tier": "Burstable"
  },
  "storageProfile": {
    "backupRetentionDays": 7,
    "fileStorageSkuName": "Premium_LRS",
    "storageAutogrow": "Disabled",
    "storageIops": 0,
    "storageMb": 10240
  },
  "tags": null,
  "type": "Microsoft.DBforMySQL/flexibleServers",
  "version": "5.7"
}

Azure CLI를 사용하여 연결 커넥트 및 테스트

Azure Database for MySQL - 유연한 서버를 사용하여 Azure CLI의 az mysql flexible-server connect 명령을 사용하여 유연한 서버에 연결할 수 있습니다. 이 명령을 사용하여 데이터베이스 서버에 대한 연결을 테스트하고, 빠른 기본 데이터베이스를 만들고, mysql.exe 또는 MySQL Workbench를 설치하지 않고 서버에 대해 직접 쿼리를 실행할 수 있습니다. 대화형 모드에서 명령을 사용하여 한 번에 여러 쿼리를 실행할 수도 있습니다.

다음 스크립트를 실행하여 개발 환경에서 데이터베이스에 대한 연결을 테스트하고 유효성을 검사합니다.

az mysql flexible-server connect -n <servername> -u <username> -p <password> -d <databasename>

예를 들면 다음과 같습니다.

az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase

연결이 성공하면 다음 예제와 같은 출력이 표시됩니다.

Connecting to newdatabase database.
Successfully connected to mysqldemoserver1.

연결에 실패하면 다음 솔루션을 사용해 보세요.

  • 클라이언트 컴퓨터에서 포트 3306이 열려 있는지 확인합니다.
  • 서버 관리자 사용자 이름과 암호가 올바른지 확인합니다.
  • 클라이언트 컴퓨터에 대한 방화벽 규칙을 구성했는지 확인합니다.
  • 가상 네트워크에서 프라이빗 액세스를 위해 서버를 구성한 경우 클라이언트 컴퓨터가 서버와 동일한 가상 네트워크에 있는지 확인합니다.

단일 쿼리를 실행하려면 인수(-q):를--querytext 사용합니다.

az mysql flexible-server connect -n <server-name> -u <username> -p "<password>" -d <database-name> --querytext "<query text>"

예를 들면 다음과 같습니다.

az mysql flexible-server connect -n mysqldemoserver1 -u dbuser -p "dbpassword" -d newdatabase -q "select * from table1;" --output table

사용에 az mysql flexible-server connect대한 자세한 내용은 Azure CLI 연결 및 쿼리를 참조하세요.

MySQL 명령줄 클라이언트를 사용하여 커넥트

가상 네트워크 통합과 함께 프라이빗 액세스를 사용하여 Azure Database for MySQL 유연한 서버를 만든 경우 서버와 동일한 가상 네트워크에 있는 리소스에서 서버에 연결합니다. 가상 머신을 만들고 Azure Database for MySQL - 유연한 서버 인스턴스를 만들 때 만든 가상 네트워크에 추가할 수 있습니다. 자세한 내용은 프라이빗 액세스 구성을 참조하세요.

공용 액세스(허용된 IP 주소)를 사용하여 Azure Database for MySQL - 유연한 서버 인스턴스를 만든 경우 서버의 방화벽 규칙 목록에 로컬 IP 주소를 추가할 수 있습니다. 자세한 지침은 방화벽 규칙 만들기 또는 관리를 참조 하세요.

로컬 환경에서 서버에 연결하려면 mysql.exe 또는 MySQL Workbench를 사용할 수 있습니다. Azure Database for MySQL - 유연한 서버는 이전에 SSL(Secure Sockets Layer)로 알려진 TLS(전송 계층 보안)를 사용하여 클라이언트 애플리케이션을 Azure Database for MySQL - 유연한 서버 서비스에 연결할 수 있도록 지원합니다. TLS는 데이터베이스 서버와 클라이언트 애플리케이션 간의 암호화된 네트워크 연결을 보장하는 업계 표준 프로토콜이므로 규정 준수 요구 사항을 준수할 수 있습니다. Azure Database for MySQL 유연한 서버를 사용하여 연결하려면 인증 기관 확인을 위해 공용 SSL 인증서를 다운로드합니다. 암호화된 연결을 사용하거나 SSL을 사용하지 않도록 설정하여 연결하는 방법에 대한 자세한 내용은 암호화된 연결을 사용하여 Azure Database for MySQL - 유연한 서버에 대한 커넥트 참조하세요.

다음 예제에서는 MySQL 명령줄 클라이언트 도구를 사용하여 Azure Database for MySQL 유연한 서버에 연결하는 방법을 보여 줍니다. 도구가 아직 설치되지 않은 경우 설치할 수 있습니다. SSL 연결에 필요한 DigiCertGlobalRootCA 인증서를 다운로드합니다. --ssl-mode=REQUIRED 연결 문자열 설정을 사용하여 TLS/SSL 인증서 확인을 적용합니다. 로컬 인증서 파일 경로를 --ssl-ca 매개 변수에 전달합니다. 값을 실제 서버 이름 및 암호로 바꿉니다.

sudo apt-get install mysql-client
wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
mysql -h mydemoserver.mysql.database.azure.com -u mydemouser -p --ssl-mode=REQUIRED --ssl-ca=DigiCertGlobalRootCA.crt.pem

공용 액세스를 사용하여 Azure Database for MySQL 유연한 서버를 프로비전한 경우 Azure Cloud Shell을 사용하여 미리 설치된 MySQL 클라이언트를 사용하여 Azure Database for MySQL 유연한 서버에 연결할 수도 있습니다.

Azure Cloud Shell을 사용하여 Azure Database for MySQL 유연한 서버에 연결하려면 Azure Cloud Shell에서 Azure Database for MySQL 유연한 서버로의 네트워킹 액세스를 허용합니다. 액세스를 허용하려면 Azure Database for MySQL 유연한 서버에 대한 Azure Portal 네트워킹 창으로 이동합니다. 다음 스크린샷과 같이 방화벽 아래에서 Azure 내의 모든 Azure 서비스에서 이 서버 검사 상자에 대한 공용 액세스 허용을 선택합니다. 그런 다음 저장을 선택하여 설정을 유지합니다.

Screenshot that shows how to grant Azure Cloud Shell access to an Azure Database for MySQL flexible server for public access network configuration.

참고 항목

개발 또는 테스트용으로만 Azure 내의 Azure 서비스에서 이 서버로의 공용 액세스 허용을 선택합니다. 이 설정은 다른 Azure 구독의 연결을 포함하여 Azure 서비스 또는 자산에 할당된 IP 주소의 연결을 허용하도록 방화벽을 구성합니다.

Azure Cloud Shell을 열려면 [시도]를 선택합니다. Cloud Shell에서 다음 명령을 사용하여 Azure Database for MySQL 유연한 서버에 연결합니다. 명령에서 서버 이름, 사용자 이름 및 암호를 사용합니다.

wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
mysql -h mydemoserver.mysql.database.azure.com -u mydemouser -p --ssl=true --ssl-ca=DigiCertGlobalRootCA.crt.pem

Important

Cloud Shell을 사용하여 Azure Database for MySQL 유연한 서버에 연결하는 경우 매개 변수를 --ssl=true 사용합니다. --ssl-mode=REQUIRED는 사용하지 마세요.

이 지침이 중요한 주된 이유는 Azure Cloud Shell이 MariaDB 배포판의 mysql.exe 클라이언트와 함께 미리 설치되어 있기 때문입니다. mysql.exe 클라이언트에는 매개 변수가 --ssl 필요합니다. Oracle 배포의 MySQL 클라이언트에는 매개 변수가 --ssl-mode 필요합니다.

Azure Database for MySQL 유연한 서버에 연결할 때 다음 오류 메시지가 표시되는 경우 방화벽 규칙을 설정할 때 Azure 내의 Azure 서비스에서 이 서버 검사box로의 공용 액세스 허용을 선택하지 않았거나 옵션이 저장되지 않습니다. 방화벽 규칙을 설정한 다음 다시 시도합니다.

ERROR 2002 (HY000): Can't connect to MySQL server on <servername> (115)

리소스 정리

다른 빠른 시작 또는 자습서에서 이 문서에 대해 만든 리소스를 사용할 필요가 없는 경우 다음 명령을 실행하여 삭제할 수 있습니다.

az group delete --name myresourcegroup

만든 유연한 서버만 삭제하려면 다음 명령을 실행합니다.

az mysql flexible-server delete --resource-group myresourcegroup --name mydemoserver