Övning – Distribuera en Azure Database for MySQL-instans
I den här övningen skapar du din Azure Database for MySQL – flexibel serverinstans och läser in den med exempeldata.
Hämta exempelprogrammet och skriptet
Klona exempelprogrammet och shell-skriptet från GitHub-lagringsplatsen med hjälp av följande kommando:
git clone https://github.com/MicrosoftDocs/mslearn-jakarta-ee-azure.git
Kloning av projektet ger följande filstruktur:
├── 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
Logga in på Azure
Om du inte har loggat in på Azure loggar du in med följande kommando:
az login
Konfigurera en standardinstallationsplats
Kommandona som körs av skriptet som används i den här modulen förväntar sig ett --location alternativ. Ange ett standardvärde för det här alternativet med hjälp av följande kommando och ersätt <location> med en lämplig region. Du bör använda samma region som du använder för att distribuera ditt Jakarta EE-program senare i den här modulen.
az configure --defaults location=<location>
Skapa en Azure Database for MySQL – flexibel serverinstans
Gå till katalogen mslearn-jakarta-ee-azure och använd sedan följande kommando för att skapa din Azure Database for MySQL – flexibel serverinstans:
Viktig
Använd följande kommando i en IPv4-miljö. Om din miljö har en IPv6-adress misslyckas kommandot eftersom brandväggskonfigurationen för den inte stöder IPv6-adresser ännu.
Om ett fel uppstår under körningen av skriptet stoppas processen mitt i körningen. Ett fel kan inträffa när skriptet beviljar behörigheter, vilket anges i utdatameddelandet Granting the User.Read.All, GroupMember.Read.All, and Application.Read.All permissions to the user managed identity. Du kan åtgärda det här felet genom att logga in på Azure CLI igen med en användare som har Azure AD administrator behörighet och sedan köra skriptet igen.
./setup_mysql.sh flexible
De typiska utdata innehåller följande lyckade resultat, plus några viktiga värden som du använder i resten av den här modulen:
[INFO] -------------------------------------------------------
[INFO] Azure Database for MySQL Setup Completed SUCCESS
[INFO] -------------------------------------------------------
Spara de nyckelvärden som visas i utdata eftersom du använder dessa värden i senare steg.
Ställ in miljövariabler
Använd följande kommandon för att lagra nyckelvärdena. Var noga med att ersätta platshållarna <...> med de värden som skriptet genererar i föregående avsnitt.
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>
Not
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Det autentiseringsflöde som beskrivs i den här proceduren, till exempel för databaser, cacheminnen, meddelanden eller AI-tjänster, kräver en hög grad av förtroende för programmet och medför risker som inte finns i andra flöden. Använd endast det här flödet när säkrare alternativ, till exempel hanterade identiteter för lösenordslösa eller nyckellösa anslutningar, inte är genomförbara. För lokala datoråtgärder föredrar du användaridentiteter för lösenordslösa eller nyckellösa anslutningar.
Hämta data från exempeldatabasen
I den här modulen använder du en exempeldatabas som heter world från den officiella MySQL-webbplatsen. Använd följande steg för att hämta data:
Ladda ned databasfilen med hjälp av följande kommando:
curl -o world-db.zip https://downloads.mysql.com/docs/world-db.zipPacka upp databasfilen med hjälp av följande kommando:
unzip world-db.zipVisa en lista över SQL-filen med hjälp av följande kommandon:
cd world-db ls -l world.sqlFöljande utdata är typiska:
-rw-r--r-- 1 ****** wheel 398635 1 7 12:25 world.sql
Logga in på databasen
Använd följande kommando för att ansluta till databasen med endast användarnamnet och lösenordet, i stället för en åtkomsttoken:
az mysql flexible-server connect \
    --name $MYSQL_SERVER_INSTANCE \
    --user azureuser \
    --interactive
När systemet uppmanar dig anger du det MySQL-lösenord som du hämtade tidigare.
När du har anslutit kan du använda följande fråga i SQL-prompten för att visa tillgängliga användarnamn och plugin-program:
SELECT user, host, plugin FROM mysql.user;
Följande utdata är typiska:
+----------------------------------+-----------+-----------------------+
| 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 |
+----------------------------------+-----------+-----------------------+
Skapa en databas och tabeller för ditt program
Använd följande steg för att skapa en databas för ditt program från world.sql-skriptet och verifiera sedan dess information:
Använd följande kommando för att skapa databasen och tabellerna:
az mysql flexible-server execute \ --name $MYSQL_SERVER_INSTANCE \ --admin-password azureuser \ --admin-password '$MYSQL_PASSWORD' \ --file-path "./world-db/world.sql"Tips/Råd
Du kan också använda
mysqlför att skapa en databas och tabeller från en skriptfil, men det tar lång tid att slutföra kommandot.Kontrollera att databaserna och tabellerna finns på servern med hjälp av följande kommando:
az mysql flexible-server connect \ --name $MYSQL_SERVER_INSTANCE \ --admin-user $MYSQL_USER \ --database-name world \ --interactiveNär systemet uppmanar dig anger du det MySQL-lösenord som du hämtade tidigare.
Följande utdata är typiska:
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 BoukalI SQL-prompten använder du följande fråga för att visa databaserna på servern:
show databases;Följande utdata är typiska:
+--------------------+ | Database | +--------------------+ | flexibleserverdb | | information_schema | | mysql | | newdatabase | | performance_schema | | sys | | world | +--------------------+ 7 rows in set Time: 0.152sAnvänd följande fråga för att lista tabellerna
worldi databasen:show tables;Följande utdata är typiska:
+-----------------+ | Tables_in_world | +-----------------+ | city | | country | | countrylanguage | +-----------------+ 3 rows in set Time: 0.145s
Förfråga exempeldatabasen
Använd följande steg för att visa innehållet i world databasen:
Visa en lista över all information om kontinenten med hjälp av följande fråga:
select distinct Continent from country ;Följande utdata är typiska:
+---------------+ | Continent | +---------------+ | North America | | Asia | | Africa | | Europe | | South America | | Oceania | | Antarctica | +---------------+Lista landsnamn och landskoder efter kontinent med hjälp av följande fråga:
select code,name from country where Continent='Asia';Följande utdata är typiska:
+------+----------------------+ | 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)Visa en lista över alla städer som har en befolkning som är större än 1 miljon med hjälp av följande fråga:
select * from city where CountryCode='JPN' AND Population > 1000000 ORDER BY Population DESC;Följande utdata är typiska:
+------+---------------------+-------------+-----------+------------+ | 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)
Enhetssammanfattning
Du har slutfört konfigurationen och förberedelsen för din Azure Database for MySQL – flexibel serverinstans. I nästa lektion får du lära dig hur du distribuerar Jakarta EE-programmet till JBoss EAP i Azure App Service, tillsammans med olika konfigurationsalternativ.