Szybki start: tworzenie wystąpienia usługi Azure Database for MySQL — serwer elastyczny przy użyciu interfejsu wiersza polecenia platformy Azure

DOTYCZY: Azure Database for MySQL — serwer elastyczny

W tym przewodniku Szybki start pokazano, jak za pomocą poleceń interfejsu wiersza polecenia platformy Azure w usłudze Azure Cloud Shell utworzyć wystąpienie usługi Azure Database for MySQL — serwer elastyczny w ciągu pięciu minut.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure. Obecnie za pomocą bezpłatnego konta platformy Azure możesz wypróbować usługę Azure Database for MySQL — serwer elastyczny bezpłatnie przez 12 miesięcy. Aby uzyskać więcej informacji, zobacz Wypróbuj bezpłatnie usługę Azure Database for MySQL — serwer elastyczny.

Otwórz usługę Azure Cloud Shell

Usługa Azure Cloud Shell to bezpłatna, interaktywna powłoka, której można użyć do uruchamiania kroków opisanych w tym artykule. W usłudze Cloud Shell typowe narzędzia platformy Azure są wstępnie zainstalowane i skonfigurowane do użycia z kontem.

Aby otworzyć usługę Cloud Shell, w prawym górnym rogu przykładu kodu wybierz pozycję Wypróbuj.

Możesz również otworzyć usługę Cloud Shell na osobnej karcie przeglądarki, przechodząc do .https://shell.azure.com/bash Wybierz pozycję Kopiuj , aby skopiować zawartość bloku kodu. W usłudze Cloud Shell wklej kod i wybierz klawisz Enter , aby go uruchomić.

Jeśli wolisz zainstalować interfejs wiersza polecenia platformy Azure i korzystać z niego, ten przewodnik Szybki start wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.0 lub nowszej. Aby znaleźć wersję instalacji interfejsu wiersza polecenia platformy Azure. , uruchom polecenie az --version. Jeśli konieczna będzie instalacja lub uaktualnienie interfejsu, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Wymagania wstępne

Zaloguj się do swojego konta przy użyciu polecenia az login . Zanotuj id właściwość . Właściwość id odnosi się do identyfikatora subskrypcji konta platformy Azure.

az login

Wybierz określoną subskrypcję na koncie platformy Azure przy użyciu polecenia az account set . Zanotuj id wartość z danych wyjściowych az login , która ma być używana jako wartość argumentu subscription w poleceniu .

Jeśli masz wiele subskrypcji, wybierz subskrypcję, w której mają być naliczane opłaty za zasób. Aby uzyskać listę subskrypcji, użyj polecenia az account list.

az account set --subscription <subscription ID>

Tworzenie elastycznego serwera usługi Azure Database for MySQL

Utwórz grupę zasobów platformy az group create Azure przy użyciu polecenia . Następnie utwórz serwer elastyczny usługi Azure Database for MySQL w grupie zasobów. Pamiętaj, aby podać unikatową nazwę. Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie myresourcegroup w lokalizacji eastus2.

az group create --name myresourcegroup --location eastus2

Utwórz serwer elastyczny usługi Azure Database for MySQL przy użyciu az mysql flexible-server create polecenia . Serwer może zawierać wiele baz danych. Następujące polecenie tworzy serwer przy użyciu wartości domyślnych usługi i wartości z lokalnego kontekstu interfejsu wiersza polecenia platformy Azure:

az mysql flexible-server create

Utworzony serwer ma następujące atrybuty:

  • Automatycznie wygenerowana nazwa serwera, nazwa użytkownika administratora, hasło administratora i nazwa grupy zasobów (jeśli nie została jeszcze określona w kontekście lokalnym) i znajduje się w tej samej lokalizacji co grupa zasobów.
  • Wartości domyślne usługi dla pozostałych konfiguracji serwera: warstwa obliczeniowa (z możliwością skalowania), rozmiar obliczeniowy/jednostka SKU (B1MS), okres przechowywania kopii zapasowych (siedem dni) i wersja programu MySQL (5.7).
  • Domyślną metodą łączności jest dostęp prywatny (integracja z siecią wirtualną) z automatycznie wygenerowaną siecią wirtualną i podsiecią.

Uwaga

Nie można zmienić metody łączności po utworzeniu serwera. Jeśli na przykład podczas tworzenia serwera wybrano opcję Dostęp prywatny (integracja z siecią wirtualną), po wdrożeniu nie można zmienić ustawienia na Dostęp publiczny (dozwolone adresy IP). Zdecydowanie zalecamy utworzenie serwera z dostępem prywatnym w celu bezpiecznego uzyskiwania dostępu do serwera przy użyciu integracji z siecią wirtualną. Aby uzyskać więcej informacji na temat dostępu prywatnego, zobacz artykuł dotyczący pojęć związanych z siecią.

Jeśli chcesz zmienić ustawienia domyślne, zobacz dokumentację referencyjną interfejsu wiersza polecenia platformy Azure, aby uzyskać pełną listę konfigurowalnych parametrów interfejsu wiersza polecenia platformy Azure.

Oto przykładowe dane wyjściowe:

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"
}

Jeśli chcesz zmienić ustawienia domyślne, zobacz dokumentację referencyjną interfejsu wiersza polecenia platformy Azure, aby uzyskać pełną listę konfigurowalnych parametrów interfejsu wiersza polecenia platformy Azure.

Utwórz bazę danych

Jeśli jeszcze nie utworzono bazy danych, utwórz bazę danych o nazwie newdatabase , uruchamiając następujące polecenie:

az mysql flexible-server db create -d newdatabase

Uwaga

Połączenie ions do usługi Azure Database for MySQL — serwer elastyczny komunikuje się przy użyciu portu 3306. Jeśli spróbujesz nawiązać połączenie z sieci firmowej, ruch wychodzący przez port 3306 może być niedozwolony. Nie można nawiązać połączenia z serwerem, chyba że dział IT otworzy port 3306.

Uzyskiwanie informacji o połączeniu

Aby nawiązać połączenie z serwerem, należy podać informacje o hoście i poświadczenia dostępu:

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

Wynik jest w formacie JSON. Zanotuj wartości dla fullyQualifiedDomainName i administratorLogin. Oto przykład danych wyjściowych 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"
}

Połączenie i przetestuj połączenie przy użyciu interfejsu wiersza polecenia platformy Azure

Za pomocą usługi Azure Database for MySQL — serwer elastyczny można nawiązać połączenie z serwerem elastycznym przy użyciu az mysql flexible-server connect polecenia w interfejsie wiersza polecenia platformy Azure. Za pomocą tego polecenia można przetestować łączność z serwerem bazy danych, utworzyć szybką podstawową bazę danych i uruchamiać zapytania bezpośrednio na serwerze bez instalowania mysql.exe lub programu MySQL Workbench. Możesz również użyć polecenia w trybie interaktywnym, aby uruchamiać wiele zapytań naraz.

Uruchom następujący skrypt, aby przetestować i zweryfikować połączenie z bazą danych ze środowiska deweloperskiego:

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

Oto przykład:

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

W pomyślnym połączeniu dane wyjściowe podobne do poniższego przykładu są wyświetlane:

Connecting to newdatabase database.
Successfully connected to mysqldemoserver1.

Jeśli połączenie nie powiedzie się, wypróbuj następujące rozwiązania:

  • Sprawdź, czy port 3306 jest otwarty na komputerze klienckim.
  • Sprawdź, czy nazwa użytkownika i hasło administratora serwera są poprawne.
  • Sprawdź, czy skonfigurowano regułę zapory dla komputera klienckiego.
  • Upewnij się, że maszyna kliencka znajduje się w tej samej sieci wirtualnej co serwer, jeśli skonfigurowano serwer pod kątem dostępu prywatnego w sieci wirtualnej.

Aby uruchomić pojedyncze zapytanie, użyj argumentu--querytext (-q):

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

Oto przykład:

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

Aby dowiedzieć się więcej na temat korzystania z programu az mysql flexible-server connect, zobacz Nawiązywanie połączenia i wykonywanie zapytań za pomocą interfejsu wiersza polecenia platformy Azure.

Połączenie przy użyciu klienta wiersza polecenia MySQL

Jeśli serwer elastyczny usługi Azure Database for MySQL został utworzony przy użyciu dostępu prywatnego z integracją sieci wirtualnej, połącz się z serwerem z zasobu, który znajduje się w tej samej sieci wirtualnej co serwer. Możesz utworzyć maszynę wirtualną i dodać ją do sieci wirtualnej utworzonej podczas tworzenia wystąpienia usługi Azure Database for MySQL — serwer elastyczny. Aby dowiedzieć się więcej, zobacz Konfigurowanie dostępu prywatnego.

Jeśli utworzono wystąpienie usługi Azure Database for MySQL — serwer elastyczny przy użyciu dostępu publicznego (dozwolone adresy IP), możesz dodać lokalny adres IP do listy reguł zapory na serwerze. Aby uzyskać szczegółowe wskazówki, zobacz Tworzenie reguł zapory lub zarządzanie nimi.

Aby nawiązać połączenie z serwerem ze środowiska lokalnego, możesz użyć mysql.exe lub mySQL Workbench. Azure Database for MySQL — serwer elastyczny obsługuje łączenie aplikacji klienckich z usługą Azure Database for MySQL — serwer elastyczny przy użyciu protokołu Transport Layer Security (TLS), wcześniej znanej jako Secure Sockets Layer (SSL). TLS to standardowy protokół branżowy, który zapewnia szyfrowane połączenia sieciowe między serwerem bazy danych i aplikacjami klienckimi, dzięki czemu można przestrzegać wymagań dotyczących zgodności. Aby nawiązać połączenie przy użyciu elastycznego serwera usługi Azure Database for MySQL, pobierz publiczny certyfikat SSL na potrzeby weryfikacji urzędu certyfikacji. Aby dowiedzieć się więcej na temat nawiązywania połączenia przy użyciu szyfrowanych połączeń lub wyłączania protokołu SSL, zobacz Połączenie z usługą Azure Database for MySQL — serwer elastyczny przy użyciu połączeń zaszyfrowanych.

W poniższym przykładzie pokazano, jak nawiązać połączenie z serwerem elastycznym usługi Azure Database for MySQL przy użyciu narzędzia klienta wiersza polecenia MySQL. Narzędzie można zainstalować, jeśli nie jest jeszcze zainstalowane. Pobierz certyfikat DigiCertGlobalRootCA wymagany dla połączeń SSL. --ssl-mode=REQUIRED Użyj ustawienia parametry połączenia, aby wymusić weryfikację certyfikatu TLS/SSL. Przekaż ścieżkę pliku certyfikatu lokalnego do parametru --ssl-ca . Zastąp wartości rzeczywistą nazwą serwera i hasłem.

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

Jeśli aprowizujesz serwer elastyczny usługi Azure Database for MySQL przy użyciu dostępu publicznego, możesz również użyć usługi Azure Cloud Shell , aby nawiązać połączenie z serwerem elastycznym usługi Azure Database for MySQL przy użyciu wstępnie zainstalowanego klienta MySQL.

Aby nawiązać połączenie z elastycznym serwerem usługi Azure Database for MySQL za pomocą usługi Azure Cloud Shell, zezwól na dostęp sieciowy z usługi Azure Cloud Shell do serwera elastycznego usługi Azure Database for MySQL. Aby zezwolić na dostęp, przejdź do okienka Sieć w witrynie Azure Portal dla serwera elastycznego usługi Azure Database for MySQL. W obszarze Zapora zaznacz pole wyboru Zezwalaj na dostęp publiczny z dowolnej usługi platformy Azure na platformie Azure do tego serwera , jak pokazano na poniższym zrzucie ekranu. Następnie wybierz pozycję Zapisz , aby utrwały ustawienie.

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

Uwaga

Wybierz pozycję Zezwalaj na dostęp publiczny z dowolnej usługi platformy Azure na platformie Azure do tego serwera tylko na potrzeby programowania lub testowania. To ustawienie umożliwia skonfigurowanie zapory tak, aby zezwalała na połączenia z adresów IP przydzielonych do dowolnej usługi lub zasobu platformy Azure, w tym połączeń z innych subskrypcji platformy Azure.

Wybierz pozycję Wypróbuj, aby otworzyć usługę Azure Cloud Shell. W usłudze Cloud Shell użyj następujących poleceń, aby nawiązać połączenie z serwerem elastycznym usługi Azure Database for MySQL. Użyj nazwy serwera, nazwy użytkownika i hasła w poleceniu .

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

Ważne

W przypadku nawiązywania połączenia z serwerem elastycznym usługi Azure Database for MySQL przy użyciu usługi Cloud Shell użyj parametru --ssl=true . Nie używaj polecenia --ssl-mode=REQUIRED.

Głównym powodem, dla którego te wskazówki są ważne, jest to, że usługa Azure Cloud Shell jest wstępnie zainstalowana z klientem mysql.exe z dystrybucji MariaDB. Klient mysql.exe wymaga parametru --ssl . Klient MySQL z dystrybucji Oracle wymaga parametru --ssl-mode .

Jeśli podczas nawiązywania połączenia z serwerem elastycznym usługi Azure Database for MySQL zostanie wyświetlony następujący komunikat o błędzie, nie wybrano pola wyboru Zezwalaj na dostęp publiczny z dowolnej usługi platformy Azure na platformie Azure do tego serwera podczas konfigurowania reguł zapory lub opcja nie jest zapisywana. Ustaw reguły zapory, a następnie spróbuj ponownie.

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

Czyszczenie zasobów

Jeśli nie musisz używać zasobów utworzonych na potrzeby tego artykułu w innym przewodniku Szybki start lub samouczku, możesz je usunąć, uruchamiając następujące polecenie:

az group delete --name myresourcegroup

Jeśli chcesz usunąć tylko utworzony serwer elastyczny, uruchom następujące polecenie:

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