Gyakorlat – Azure Database for MySQL-példány üzembe helyezése
Ebben a gyakorlatban létrehoz egy saját Azure Database for MySQL – Flexible Server példányt, és feltölti azt mintaadatokkal.
A mintaalkalmazás és a szkript lekérése
Klónozza a mintaalkalmazást és a rendszerhéjszkriptet a GitHub-adattárból az alábbi paranccsal:
git clone https://github.com/MicrosoftDocs/mslearn-jakarta-ee-azure.git
A projekt klónozása a következő fájlstruktúrát hozza létre:
├── 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
Bejelentkezés az Azure-ba
Ha még nem jelentkezett be az Azure-ba, jelentkezzen be a következő paranccsal:
az login
Alapértelmezett telepítési hely beállítása
Az ebben a modulban használt szkript által végrehajtott parancsok --location beállítást várnak. Adjon meg egy alapértelmezett értéket ehhez a beállításhoz a következő paranccsal, és cserélje le <location> a megfelelő régióra. A modul későbbi részében ugyanazt a régiót kell használnia, amelyet a Jakarta EE-alkalmazás üzembe helyezéséhez használ.
az configure --defaults location=<location>
Azure Database for MySQL - Flexible Server rugalmas példány létrehozása
Nyissa meg az mslearn-jakarta-ee-azure könyvtárat, majd az alábbi paranccsal hozza létre az Azure Database for MySQL - Flexible Server-példányt:
Fontos
Használja a következő parancsot egy IPv4-környezetben. Ha a környezet rendelkezik IPv6-címmel, a parancs meghiúsul, mert a tűzfal konfigurációja még nem támogatja az IPv6-címeket.
Ha hiba történik a szkript végrehajtása során, a folyamat a végrehajtás közepén leáll. Hiba léphet fel, amikor a szkript engedélyeket biztosít, amint azt a kimeneti üzenet jelzi Granting the User.Read.All, GroupMember.Read.All, and Application.Read.All permissions to the user managed identity. A hiba elhárításához jelentkezzen be ismét az Azure CLI-be egy jogosultságokkal rendelkező Azure AD administrator felhasználóval, majd futtassa újra a szkriptet.
./setup_mysql.sh flexible
A tipikus kimenet a következő sikerességet tartalmazza, valamint néhány fontos értéket, amelyeket a modul többi részében használ:
[INFO] -------------------------------------------------------
[INFO] Azure Database for MySQL Setup Completed SUCCESS
[INFO] -------------------------------------------------------
Mentse a kimenetben megjelenő legfontosabb értékeket, mert ezeket az értékeket a későbbi lépésekben használja.
Környezeti változók beállítása
A kulcsértékek tárolásához használja az alábbi parancsokat. Mindenképpen cserélje le a <...> helyőrzőket az előző szakaszban szereplő szkript által kimenetként megadott értékekre.
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>
Jegyzet
A Microsoft az elérhető legbiztonságosabb hitelesítési folyamat használatát javasolja. Az ebben az eljárásban leírt hitelesítési folyamat, például adatbázisok, gyorsítótárak, üzenetkezelés vagy AI-szolgáltatások esetében, nagy fokú bizalmat igényel az alkalmazásban, és más folyamatokban nem jelen lévő kockázatokat hordoz. Ezt a folyamatot csak akkor használja, ha a biztonságosabb beállítások, például a jelszó nélküli vagy kulcs nélküli kapcsolatok felügyelt identitásai nem életképesek. A helyi gépi műveletekhez előnyben részesítse a jelszó nélküli vagy kulcs nélküli kapcsolatok felhasználói identitásait.
Adatok lekérése a mintaadatbázisból
Ebben a modulban egy, a hivatalos MySQL-webhelyről származó world mintaadatbázist használ. Az adatok lekéréséhez kövesse az alábbi lépéseket:
Töltse le az adatbázisfájlt a következő paranccsal:
curl -o world-db.zip https://downloads.mysql.com/docs/world-db.zipBontsa ki az adatbázisfájlt a következő paranccsal:
unzip world-db.zipAz SQL-fájl listázása az alábbi parancsokkal:
cd world-db ls -l world.sqlA következő kimenet jellemző:
-rw-r--r-- 1 ****** wheel 398635 1 7 12:25 world.sql
Bejelentkezés az adatbázisba
A következő paranccsal csak a felhasználónév és a jelszó használatával csatlakozhat az adatbázishoz hozzáférési jogkivonat helyett:
az mysql flexible-server connect \
--name $MYSQL_SERVER_INSTANCE \
--user azureuser \
--interactive
Amikor a rendszer kéri, adja meg a korábban lekért MySQL-jelszót.
A csatlakozás után az ALÁBBI lekérdezést használhatja az SQL-parancssorban az elérhető felhasználónevek és beépülő modulok megtekintéséhez:
SELECT user, host, plugin FROM mysql.user;
A következő kimenet jellemző:
+----------------------------------+-----------+-----------------------+
| 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 |
+----------------------------------+-----------+-----------------------+
Adatbázis és táblák létrehozása az alkalmazáshoz
Az alábbi lépésekkel hozzon létre egy adatbázist az alkalmazáshoz a world.sql szkriptből, majd ellenőrizze annak részleteit:
Az adatbázis és a táblák létrehozásához használja az alábbi parancsot:
az mysql flexible-server execute \ --name $MYSQL_SERVER_INSTANCE \ --admin-password azureuser \ --admin-password '$MYSQL_PASSWORD' \ --file-path "./world-db/world.sql"Jótanács
Egy szkriptfájlból adatbázist és táblákat is
mysqllétrehozhat, de a parancs végrehajtása hosszú időt vesz igénybe.Az alábbi paranccsal győződjön meg arról, hogy az adatbázisok és táblák a kiszolgálón találhatók:
az mysql flexible-server connect \ --name $MYSQL_SERVER_INSTANCE \ --admin-user $MYSQL_USER \ --database-name world \ --interactiveAmikor a rendszer kéri, adja meg a korábban lekért MySQL-jelszót.
A következő kimenet jellemző:
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 BoukalAz SQL-parancssorban az alábbi lekérdezés használatával jelenítse meg a kiszolgálón lévő adatbázisokat:
show databases;A következő kimenet jellemző:
+--------------------+ | Database | +--------------------+ | flexibleserverdb | | information_schema | | mysql | | newdatabase | | performance_schema | | sys | | world | +--------------------+ 7 rows in set Time: 0.152sA következő lekérdezés használatával listázhatja az adatbázis tábláinak listáját
world:show tables;A következő kimenet jellemző:
+-----------------+ | Tables_in_world | +-----------------+ | city | | country | | countrylanguage | +-----------------+ 3 rows in set Time: 0.145s
A mintaadatbázis lekérdezése
Az adatbázis tartalmának megtekintéséhez kövesse az world alábbi lépéseket:
Az alábbi lekérdezéssel listázhatja az összes kontinens-információt:
select distinct Continent from country ;A következő kimenet jellemző:
+---------------+ | Continent | +---------------+ | North America | | Asia | | Africa | | Europe | | South America | | Oceania | | Antarctica | +---------------+Országnevek és országkódok listázása kontinensek szerint az alábbi lekérdezéssel:
select code,name from country where Continent='Asia';A következő kimenet jellemző:
+------+----------------------+ | 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)Az alábbi lekérdezéssel listázhatja az 1 milliónál nagyobb népességű városok listáját:
select * from city where CountryCode='JPN' AND Population > 1000000 ORDER BY Population DESC;A következő kimenet jellemző:
+------+---------------------+-------------+-----------+------------+ | 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)
Egységösszegzés
Elvégezte az Azure Database for MySQL rugalmas kiszolgálópéldányának beállítását és előkészítését. A következő egység bemutatja a Jakarta EE-alkalmazás üzembe helyezésének folyamatát az Azure App Service JBoss EAP-ban, valamint a különböző konfigurációs lehetőségeket.