Alıştırma - MySQL için Azure Veritabanı örneği dağıtma
Bu alıştırmada MySQL için Azure Veritabanı - Esnek Sunucu örneğinizi oluşturacak ve örnek verilerle yükleyebilirsiniz.
Örnek uygulama ve betiği edinin
Aşağıdaki komutu kullanarak GitHub deposundan örnek uygulama ve kabuk betiğini kopyalayın:
git clone https://github.com/MicrosoftDocs/mslearn-jakarta-ee-azure.git
Projenin kopyalanması aşağıdaki dosya yapısını oluşturur:
├── 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
Azure'da oturum açma
Azure'da oturum açmadıysanız aşağıdaki komutu kullanarak oturum açın:
az login
Varsayılan yükleme konumunu ayarlama
Bu modülde kullanılan betik tarafından yürütülen komutlar bir --location seçeneği bekler. Aşağıdaki komutu kullanarak <location> öğesini uygun bir bölgeyle değiştirerek bu seçenek için varsayılan bir değer belirtin. Bu modülün ilerleyen bölümlerinde Jakarta EE uygulamanızı dağıtmak için kullandığınız bölgeyi kullanmanız gerekir.
az configure --defaults location=<location>
MySQL için Azure Veritabanı - Esnek Sunucu örneği oluşturma
mslearn-jakarta-ee-azure dizinine gidin ve aşağıdaki komutu kullanarak MySQL için Azure Veritabanı - Esnek Sunucu örneğinizi oluşturun:
Önemli
IPv4 ortamında aşağıdaki komutu kullanın. Ortamınızda bir IPv6 adresi varsa, güvenlik duvarı yapılandırması henüz IPv6 adreslerini desteklemediğinden komut başarısız olur.
Betiğin yürütülmesi sırasında bir hata oluşursa, işlem yürütmenin ortasında durur. Betik, çıkış iletisinde Granting the User.Read.All, GroupMember.Read.All, and Application.Read.All permissions to the user managed identitygösterildiği gibi izinler verirken bir hata oluşabilir. Bu hatayı düzeltmek için Azure CLI'da ayrıcalıkları olan Azure AD administrator bir kullanıcıyla yeniden oturum açın ve ardından betiği yeniden çalıştırın.
./setup_mysql.sh flexible
Tipik çıktı aşağıdaki başarının yanı sıra bu modülün geri kalanında kullandığınız bazı önemli değerleri içerir:
[INFO] -------------------------------------------------------
[INFO] Azure Database for MySQL Setup Completed SUCCESS
[INFO] -------------------------------------------------------
Sonraki adımlarda bu değerleri kullandığınızdan çıkışta görüntülenen anahtar değerlerini bir kenara kaydedin.
Ortam değişkenlerini ayarlama
Anahtar değerlerini depolamak için aşağıdaki komutları kullanın. Scriptin önceki bölümdeki çıktılarıyla yer tutucularını <...> değiştirmeyi mutlaka yapın.
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, kullanılabilir en güvenli kimlik doğrulama akışının kullanılmasını önerir. Veritabanları, önbellekler, mesajlaşma veya yapay zeka hizmetleri gibi bu yordamda açıklanan kimlik doğrulama akışı, uygulamaya yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca parolasız veya anahtarsız bağlantılar için yönetilen kimlikler gibi daha güvenli seçenekler uygun olmadığında kullanın. Yerel makine işlemleri için parolasız veya anahtarsız bağlantılar için kullanıcı kimliklerini tercih edin.
Örnek veritabanından veri alma
Bu modülde, resmi MySQL web sitesinden alınan world adlı bir örnek veritabanı kullanacaksınız. Verileri almak için aşağıdaki adımları kullanın:
Aşağıdaki komutu kullanarak veritabanı dosyasını indirin:
curl -o world-db.zip https://downloads.mysql.com/docs/world-db.zipAşağıdaki komutu kullanarak veritabanı dosyasının sıkıştırmasını açın:
unzip world-db.zipAşağıdaki komutları kullanarak SQL dosyasını listeleyin:
cd world-db ls -l world.sqlAşağıdaki çıkış tipiktir:
-rw-r--r-- 1 ****** wheel 398635 1 7 12:25 world.sql
Veritabanında oturum açma
Veritabanına erişim belirteci yerine yalnızca kullanıcı adı ve parola kullanarak bağlanmak için aşağıdaki komutu kullanın:
az mysql flexible-server connect \
--name $MYSQL_SERVER_INSTANCE \
--user azureuser \
--interactive
Sistem sizden sorulduğunda, daha önce aldığınız MySQL parolasını girin.
Bağlandıktan sonra sql isteminde aşağıdaki sorguyu kullanarak kullanılabilir kullanıcı adlarını ve eklentileri görüntüleyebilirsiniz:
SELECT user, host, plugin FROM mysql.user;
Aşağıdaki çıkış tipiktir:
+----------------------------------+-----------+-----------------------+
| 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 |
+----------------------------------+-----------+-----------------------+
Uygulamanız için veritabanı ve tablolar oluşturma
Uygulamanız için world.sql betiğinden bir veritabanı oluşturmak ve ardından ayrıntılarını doğrulamak için aşağıdaki adımları kullanın:
Veritabanını ve tabloları oluşturmak için aşağıdaki komutu kullanın:
az mysql flexible-server execute \ --name $MYSQL_SERVER_INSTANCE \ --admin-password azureuser \ --admin-password '$MYSQL_PASSWORD' \ --file-path "./world-db/world.sql"Tavsiye
Bir betik dosyasından veritabanı ve tablo oluşturmak için de kullanabilirsiniz
mysql, ancak bu komutun tamamlanması uzun sürer.Aşağıdaki komutu kullanarak veritabanlarının ve tabloların sunucunuzda olduğunu onaylayın:
az mysql flexible-server connect \ --name $MYSQL_SERVER_INSTANCE \ --admin-user $MYSQL_USER \ --database-name world \ --interactiveSistem sizden sorulduğunda, daha önce aldığınız MySQL parolasını girin.
Aşağıdaki çıkış tipiktir:
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 BoukalSQL isteminde, sunucudaki veritabanlarını göstermek için aşağıdaki sorguyu kullanın:
show databases;Aşağıdaki çıkış tipiktir:
+--------------------+ | Database | +--------------------+ | flexibleserverdb | | information_schema | | mysql | | newdatabase | | performance_schema | | sys | | world | +--------------------+ 7 rows in set Time: 0.152sVeritabanındaki tabloları listelemek için aşağıdaki sorguyu
worldkullanın:show tables;Aşağıdaki çıkış tipiktir:
+-----------------+ | Tables_in_world | +-----------------+ | city | | country | | countrylanguage | +-----------------+ 3 rows in set Time: 0.145s
Örnek veritabanını sorgulama
Veritabanının içeriğini world görüntülemek için aşağıdaki adımları kullanın:
Aşağıdaki sorguyu kullanarak tüm kıta bilgilerini listeleyin:
select distinct Continent from country ;Aşağıdaki çıkış tipiktir:
+---------------+ | Continent | +---------------+ | North America | | Asia | | Africa | | Europe | | South America | | Oceania | | Antarctica | +---------------+Aşağıdaki sorguyu kullanarak ülke adlarını ve ülke kodlarını kıtaya göre listeleyin:
select code,name from country where Continent='Asia';Aşağıdaki çıkış tipiktir:
+------+----------------------+ | 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)Aşağıdaki sorguyu kullanarak nüfusu 1 milyondan büyük olan tüm şehirleri listeleyin:
select * from city where CountryCode='JPN' AND Population > 1000000 ORDER BY Population DESC;Aşağıdaki çıkış tipiktir:
+------+---------------------+-------------+-----------+------------+ | 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)
Birim özeti
MySQL için Azure Veritabanı - Esnek Sunucu örneğinizin kurulumunu ve hazırlığı tamamladınız. Bir sonraki ünitede Jakarta EE uygulamasını Azure App Service'te JBoss EAP'ye dağıtma işlemi ve çeşitli yapılandırma seçenekleri tanıtılacaktır.