Cvičení – nasazení instance Azure Database for MySQL
V tomto cvičení vytvoříte instanci Azure Database for MySQL – Flexible Server a načtete ji ukázkovými daty.
Získání ukázkové aplikace a skriptu
Naklonujte ukázkovou aplikaci a skript prostředí z úložiště GitHub pomocí následujícího příkazu:
git clone https://github.com/MicrosoftDocs/mslearn-jakarta-ee-azure.git
Klonování projektu vytvoří následující strukturu souborů:
├── LICENSE
├── README.md
├── mvnw
├── mvnw.cmd
├── 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
Přihlášení k Azure
Pokud jste se nepřihlásili k Azure, přihlaste se pomocí následujícího příkazu:
az login
Nastavení výchozího umístění instalace
Příkazy spouštěné skriptem použitým v tomto modulu očekávají možnost --location. Zadejte výchozí hodnotu pro tuto možnost pomocí následujícího příkazu a nahraďte <location> příslušnou oblastí. Měli byste použít stejnou oblast, kterou používáte k nasazení aplikace Jakarta EE později v tomto modulu.
az configure --defaults location=<location>
Vytvoření instance flexibilního serveru Azure Database for MySQL
Přejděte do adresáře mslearn-jakarta-ee-azure a pak pomocí následujícího příkazu vytvořte instanci flexibilního serveru Azure Database for MySQL:
Důležitý
V prostředí IPv4 použijte následující příkaz. Pokud má vaše prostředí adresu IPv6, příkaz selže, protože konfigurace brány firewall pro ni zatím nepodporuje adresy IPv6.
Pokud během provádění skriptu dojde k chybě, proces se zastaví uprostřed provádění. Při udělování oprávnění skriptu může dojít k chybě, jak je uvedeno ve výstupní zprávě Granting the User.Read.All, GroupMember.Read.All, and Application.Read.All permissions to the user managed identity. Pokud chcete tuto chybu opravit, znovu se přihlaste k Azure CLI pomocí uživatele s Azure AD administrator oprávněními a pak znovu spusťte skript.
./setup_mysql.sh flexible
Typický výstup zahrnuje následující úspěch a některé důležité hodnoty, které použijete ve zbytku tohoto modulu:
[INFO] -------------------------------------------------------
[INFO] Azure Database for MySQL Setup Completed SUCCESS
[INFO] -------------------------------------------------------
Uložte si hodnoty klíče, které se zobrazí ve výstupu, protože tyto hodnoty použijete v pozdějších krocích.
Nastavení proměnných prostředí
K uložení hodnot klíčů použijte následující příkazy. Nezapomeňte nahradit zástupné symboly <...> hodnotami, které jsou výstupem skriptu v předchozí části.
export RESOURCE_GROUP_NAME=<resource-group>
export MYSQL_SERVER_INSTANCE=<MySQL-host-name>
export MYSQL_USER=<MySQL-admin-user-name>
export MYSQL_PASSWORD=<MySQL-password>
Poznámka
Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Tok ověřování popsaný v tomto postupu, například pro databáze, mezipaměti, zasílání zpráv nebo služby AI, vyžaduje vysokou míru důvěryhodnosti v aplikaci a nese rizika, která nejsou v jiných tocích. Tento tok používejte jenom v případě, že nejsou realizovatelné bezpečnější možnosti, jako například spravované identity pro připojení bez hesla nebo bez klíčů. V případě místních operací počítačů upřednostňujete identity uživatelů pro připojení bez hesla nebo bez klíčů.
Získání dat z ukázkové databáze
V tomto modulu použijete ukázkovou databázi volanou world z oficiálního webu MySQL. K získání dat použijte následující postup:
Stáhněte soubor databáze pomocí následujícího příkazu:
curl -o world-db.zip https://downloads.mysql.com/docs/world-db.zipRozbalte soubor databáze pomocí následujícího příkazu:
unzip world-db.zipVytvořte seznam souboru SQL pomocí následujících příkazů:
cd world-db ls -l world.sqlNásledující výstup je typický:
-rw-r--r-- 1 ****** wheel 398635 1 7 12:25 world.sql
Přihlášení k databázi
Pomocí následujícího příkazu se připojte k databázi pouze pomocí uživatelského jména a hesla místo přístupového tokenu:
az mysql flexible-server connect \
--name $MYSQL_SERVER_INSTANCE \
--user azureuser \
--interactive
Po zobrazení výzvy systému zadejte heslo MySQL, které jste načetli dříve.
Po připojení můžete pomocí následujícího dotazu na příkazovém řádku SQL zobrazit dostupná uživatelská jména a moduly plug-in:
SELECT user, host, plugin FROM mysql.user;
Následující výstup je typický:
+----------------------------------+-----------+-----------------------+
| user | host | plugin |
+----------------------------------+-----------+-----------------------+
| azureuser | % | mysql_native_password |
| $CURRENT_AZ_LOGIN_USER_NAME#EXT#@| % | aad_auth |
| azure_superuser | 127.0.0.1 | mysql_native_password |
| azure_superuser | localhost | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
+----------------------------------+-----------+-----------------------+
Vytvoření databáze a tabulek pro vaši aplikaci
Pomocí následujícího postupu vytvořte databázi pro vaši aplikaci ze skriptu world.sql a pak ověřte jeho podrobnosti:
K vytvoření databáze a tabulek použijte následující příkaz:
az mysql flexible-server execute \ --name $MYSQL_SERVER_INSTANCE \ --admin-password azureuser \ --admin-password '$MYSQL_PASSWORD' \ --file-path "./world-db/world.sql"Návod
Můžete také použít
mysqlk vytvoření databáze a tabulek ze souboru skriptu, ale dokončení příkazu trvá dlouho.Pomocí následujícího příkazu ověřte, že databáze a tabulky jsou na vašem serveru:
az mysql flexible-server connect \ --name $MYSQL_SERVER_INSTANCE \ --admin-user $MYSQL_USER \ --database-name world \ --interactivePo zobrazení výzvy systému zadejte heslo MySQL, které jste načetli dříve.
Následující výstup je typický:
MySQL 8.0.39 mycli 1.27.2 Home: http://mycli.net Bug tracker: https://github.com/dbcli/mycli/issues Thanks to the contributor - Jakub BoukalNa příkazovém řádku SQL pomocí následujícího dotazu zobrazte databáze na serveru:
show databases;Následující výstup je typický:
+--------------------+ | Database | +--------------------+ | flexibleserverdb | | information_schema | | mysql | | newdatabase | | performance_schema | | sys | | world | +--------------------+ 7 rows in set Time: 0.152sK výpisu tabulek v
worlddatabázi použijte následující dotaz:show tables;Následující výstup je typický:
+-----------------+ | Tables_in_world | +-----------------+ | city | | country | | countrylanguage | +-----------------+ 3 rows in set Time: 0.145s
Provést dotaz na ukázkovou databázi
Chcete-li zobrazit obsah databáze world, použijte následující kroky:
Pomocí následujícího dotazu vypíšete všechny informace o kontinentu:
select distinct Continent from country ;Následující výstup je typický:
+---------------+ | Continent | +---------------+ | North America | | Asia | | Africa | | Europe | | South America | | Oceania | | Antarctica | +---------------+Pomocí následujícího dotazu zobrazte seznam názvů zemí a kódů zemí podle kontinentu:
select code,name from country where Continent='Asia';Následující výstup je typický:
+------+----------------------+ | 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)Pomocí následujícího dotazu vypíšete všechna města, která mají populaci větší než 1 milion:
select * from city where CountryCode='JPN' AND Population > 1000000 ORDER BY Population DESC;Následující výstup je typický:
+------+---------------------+-------------+-----------+------------+ | 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)
Souhrn jednotek
Dokončili jste nastavení a přípravu instance flexibilního serveru Azure Database for MySQL. V další lekci se seznámíte s procesem nasazení aplikace Jakarta EE do JBoss EAP ve službě Azure App Service spolu s různými možnostmi konfigurace.