Übung: Bereitstellen einer Azure Database for MySQL-Instanz
In dieser Übung erstellen Sie eine Azure for MySQL Database-Instanz und laden sie mit Beispieldaten.
Abrufen von Beispielanwendung und Skript
Klonen Sie zunächst die Beispielanwendung und das Shellskript aus dem GitHub-Repository:
git clone https://github.com/MicrosoftDocs/mslearn-jakarta-ee-azure.git
Nachdem Sie das Projekt geklont haben, werden die folgenden Verzeichnisse und Dateien angezeigt:
├── Azure-MySQL-Setup-For-Sample-App.md
├── README.md
├── pom.xml
├── setup_mysql.sh
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── microsoft
│ │ │ └── azure
│ │ │ └── samples
│ │ │ ├── JAXRSConfiguration.java
│ │ │ ├── controllers
│ │ │ │ ├── CityService.java
│ │ │ │ └── CountryService.java
│ │ │ ├── entities
│ │ │ │ ├── City.java
│ │ │ │ └── Country.java
│ │ │ └── rest
│ │ │ └── WorldServiceEndpoint.java
│ │ ├── resources
│ │ │ └── META-INF
│ │ │ └── persistence.xml
│ │ └── webapp
│ │ └── WEB-INF
│ │ ├── beans.xml
│ │ ├── createMySQLDataSource.sh
│ │ └── web.xml
│ └── test
│ └── java
│ └── com
│ └── microsoft
│ └── azure
│ └── samples
│ └── SampleTest.java
└── world.sql
Anmelden bei Azure
Melden Sie sich bei Azure an, falls dies noch nicht geschehen ist:
az login
Einrichten eines Standardinstallationsstandorts
Die Befehle, die von dem in diesem Modul verwendeten Skript ausgeführt werden, erwarten die Option --location
. Sie können mit dem folgenden Befehl einen Standardwert für diese Option festlegen.
az configure --defaults location=<desired location>
Hinweis
Für die Bereitstellung Ihrer Java EE-Anwendung sollten Sie in dieselbe Region wechseln.
Erstellen einer Instanz von Azure-Datenbank für MySQL
Verwenden Sie nach Anmeldung das Projektskript setup_mysql.sh
, um Ihre Azure Database for MySQL-Instanz zu erstellen. Vergewissern Sie sich, dass Sie sich im Verzeichnis mslearn-jakarta-ee-azure
befinden.
Wichtig
Führen Sie den folgenden Befehl in einer IPv4-Umgebung aus. Wenn Sie für Ihre Umgebung eine IPv6-Adresse verwenden, tritt bei diesem Befehl ein Fehler auf, da IPv6-Adressen für die Firewallkonfiguration derzeit noch nicht unterstützt werden.
./setup_mysql.sh flexible
Notieren Sie sich die Schlüsselwerte, die in der Ausgabe des Befehls angezeigt werden. Diese Werte benötigen Sie für spätere Schritte.
[INFO] -------------------------------------------------------
[INFO] Azure Database for MySQL Setup Completed SUCCESS
[INFO] -------------------------------------------------------
[INFO] 1. Please copy the following value into your temporal file
[INFO]
[INFO] RESOURCE GROUP is MySQL-RG-20201208152233
[INFO] MySQL HOSTNAME is mysqlserver-wqcnzwhqvw.mysql.database.azure.com
[INFO] MySQL USERNAME is azureuser
[INFO] MySQL PASSWORD is **********
[INFO]
[INFO]
[INFO] 2. Please execute the following command.
[INFO]
[INFO] mysql -u azureuser -h mysqlserver-wqcnzwhqvw.mysql.database.azure.com -p [Enter Key]
[INFO] Enter password: ********** [COPY&PASTE]
[INFO]
[INFO]
[INFO] 3. Clean up Resource (Delete MySQL DB)
[INFO] az group delete -n MySQL-RG-20201208152233
[INFO] -------------------------------------------------------
Abrufen von Daten aus der Beispieldatenbank
In diesem Modul verwenden Sie die Beispieldatenbank world
von der offiziellen MySQL-Website. So rufen Sie die Daten ab:
Laden Sie die Datenbankdatei herunter:
curl -o world-db.zip https://downloads.mysql.com/docs/world-db.zip
Entzippen Sie die Datenbankdatei:
unzip world-db.zip
Greifen Sie auf die SQL-Datei zu:
cd world-db ls -l world.sql
-rw-r--r-- 1 ****** wheel 398635 1 7 12:25 world.sql
Anmelden bei der MySQL Database-Instanz
Nachdem Sie die MySQL Database-Instanz abgerufen haben, können Sie über den mysql
-Befehl auf die Datenbank zugreifen. Verwenden Sie hierzu das Kennwort, das Sie sich beim Erstellen der Instanz mit der Bereitstellungsoption „flexibler Server“ notiert haben:
mysql -u azureuser -h mysqlserver-<your instance>.mysql.database.azure.com -p [Enter]
Enter password: [**********]
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.29-log MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Erstellen von Datenbank und Tabellen für Ihre Anwendung
Führen Sie den folgenden Befehl mysql
aus:
mysql> source world.sql
Query OK, 0 rows affected (0.01 sec)
....
....
Query OK, 0 rows affected (0.01 sec)
mysql>
Die Datenbank world
und die entsprechenden Tabellen werden in der MySQL Database-Instanz automatisch erstellt. Diese Aktion dauert einige Minuten.
Überprüfen von Datenbank und Tabellen
Überprüfen Sie, ob sich die Datenbanken auf Ihrem Server befinden:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | world | +--------------------+ 5 rows in set (0.02 sec)
Verweisen Sie auf die Daten in der
world
-Datenbank:mysql> use world; Database changed
Überprüfen Sie, ob sich die folgenden Tabellen in der
world
-Datenbank befinden:mysql> show tables; +-----------------+ | Tables_in_world | +-----------------+ | city | | country | | countrylanguage | +-----------------+ 3 rows in set (0.04 sec)
Abfragen der Beispieldatenbank
Nun können Sie die Inhalte der world
-Datenbank anzeigen.
Rufen Sie alle Informationen zu Kontinenten ab:
mysql> select distinct Continent from country ; +---------------+ | Continent | +---------------+ | North America | | Asia | | Africa | | Europe | | South America | | Oceania | | Antarctica | +---------------+
Rufen Sie Ländernamen und Landeskennzahlen nach Kontinent ab:
mysql> select code,name from country where Continent='Asia'; +------+----------------------+ | code | Name | +------+----------------------+ | AFG | Afghanistan | | ARE | United Arab Emirates | | ARM | Armenia | | AZE | Azerbaijan | | BGD | Bangladesh | | BHR | Bahrain | | BRN | Brunei | | BTN | Bhutan | | CHN | China | | CYP | Cyprus | | GEO | Georgia | | HKG | Hong Kong SAR | | IDN | Indonesia | | IND | India | | IRN | Iran | | IRQ | Iraq | | ISR | Israel | | JOR | Jordan | | JPN | Japan | ..... | VNM | Vietnam | | YEM | Yemen | +------+----------------------+ 51 rows in set (0.02 sec)
Rufen Sie alle Städte mit mehr als einer Million Einwohnern ab:
mysql> select * from city where CountryCode='JPN' AND Population > 1000000 ORDER BY Population DESC; +------+---------------------+-------------+-----------+------------+ | ID | Name | CountryCode | District | Population | +------+---------------------+-------------+-----------+------------+ | 1532 | Tokyo | JPN | Tokyo-to | 7980230 | | 1533 | Jokohama [Yokohama] | JPN | Kanagawa | 3339594 | | 1534 | Osaka | JPN | Osaka | 2595674 | | 1535 | Nagoya | JPN | Aichi | 2154376 | | 1536 | Sapporo | JPN | Hokkaido | 1790886 | | 1537 | Kioto | JPN | Kyoto | 1461974 | | 1538 | Kobe | JPN | Hyogo | 1425139 | | 1539 | Fukuoka | JPN | Fukuoka | 1308379 | | 1540 | Kawasaki | JPN | Kanagawa | 1217359 | | 1541 | Hiroshima | JPN | Hiroshima | 1119117 | | 1542 | Kitakyushu | JPN | Fukuoka | 1016264 | +------+---------------------+-------------+-----------+------------+ 11 rows in set (0.33 sec)
Zusammenfassung der Lerneinheit
Ihr MySQL-Server ist nun eingerichtet und vorbereitet. In der nächsten Lerneinheit lernen Sie die Schritte zum Bereitstellen der Java EE-Anwendung (Jakarta EE) für JBoss EAP in Azure App Service und ihre Konfiguration kennen.