Latihan - Menyebarkan instans Azure Database for MySQL
Dalam latihan ini, Anda membuat instance Azure Database for MySQL - Server Fleksibel dan memuatnya dengan data sampel.
Dapatkan aplikasi contoh dan skrip
Kloning aplikasi sampel dan skrip shell dari repositori GitHub dengan menggunakan perintah berikut:
git clone https://github.com/MicrosoftDocs/mslearn-jakarta-ee-azure.git
Mengkloning proyek menghasilkan struktur file berikut:
├── 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
Masuk ke Azure
Jika Anda belum masuk ke Azure, masuk dengan menggunakan perintah berikut:
az login
Menyiapkan lokasi penginstalan default
Perintah yang dijalankan oleh skrip yang digunakan dalam modul ini mengharapkan opsi --location. Tentukan nilai default untuk opsi ini dengan menggunakan perintah berikut, mengganti <location> dengan wilayah yang sesuai. Anda harus menggunakan wilayah yang sama dengan yang Anda gunakan untuk menyebarkan aplikasi EE Jakarta Anda nanti dalam modul ini.
az configure --defaults location=<location>
Membuat Azure Database for MySQL - Instans Server Fleksibel
Navigasikan ke direktori mslearn-jakarta-ee-azure , lalu gunakan perintah berikut untuk membuat Instans Azure Database for MySQL - Server Fleksibel:
Penting
Gunakan perintah berikut di lingkungan IPv4. Jika lingkungan Anda memiliki alamat IPv6, perintah akan gagal karena konfigurasi firewall untuk lingkungan Anda belum mendukung alamat IPv6.
Jika terjadi kesalahan selama eksekusi skrip, proses berhenti di tengah eksekusi. Kesalahan mungkin terjadi saat skrip memberikan izin, seperti yang ditunjukkan oleh pesan Granting the User.Read.All, GroupMember.Read.All, and Application.Read.All permissions to the user managed identityoutput . Untuk memperbaiki kesalahan ini, masuk lagi ke Azure CLI dengan pengguna yang memiliki Azure AD administrator hak istimewa, lalu jalankan kembali skrip.
./setup_mysql.sh flexible
Output umum mencakup keberhasilan berikut, ditambah beberapa nilai penting yang Anda gunakan di sisa modul ini:
[INFO] -------------------------------------------------------
[INFO] Azure Database for MySQL Setup Completed SUCCESS
[INFO] -------------------------------------------------------
Simpanlah nilai kunci yang muncul dalam output karena Anda akan menggunakan nilai-nilai ini pada langkah-langkah berikutnya.
Menyiapkan variabel lingkungan
Gunakan perintah berikut untuk menyimpan nilai kunci. Pastikan untuk mengganti <...> tempat penampung dengan nilai-nilai yang dihasilkan oleh skrip di bagian sebelumnya.
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>
Nota
Microsoft merekomendasikan penggunaan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan dalam prosedur ini, seperti untuk database, cache, olahpesan, atau layanan AI, memerlukan tingkat kepercayaan yang tinggi pada aplikasi dan membawa risiko yang tidak ada dalam alur lain. Gunakan alur ini hanya ketika opsi yang lebih aman, seperti identitas terkelola untuk koneksi tanpa kata sandi atau tanpa kunci, tidak layak. Untuk operasi komputer lokal, lebih suka identitas pengguna untuk koneksi tanpa kata sandi atau tanpa kunci.
Mendapatkan data dari database sampel
Dalam modul ini, Anda menggunakan database sampel yang disebut world dari situs web MySQL resmi. Untuk mendapatkan data, gunakan langkah-langkah berikut:
Unduh file database dengan menggunakan perintah berikut:
curl -o world-db.zip https://downloads.mysql.com/docs/world-db.zipUnzip file database dengan menggunakan perintah berikut:
unzip world-db.zipCantumkan file SQL dengan menggunakan perintah berikut:
cd world-db ls -l world.sqlOutput berikut ini umum:
-rw-r--r-- 1 ****** wheel 398635 1 7 12:25 world.sql
Masuk ke database
Gunakan perintah berikut untuk menyambungkan ke database hanya menggunakan nama pengguna dan kata sandi, bukan token akses:
az mysql flexible-server connect \
--name $MYSQL_SERVER_INSTANCE \
--user azureuser \
--interactive
Saat sistem meminta Anda, masukkan kata sandi MySQL yang Anda ambil sebelumnya.
Setelah tersambung, Anda dapat menggunakan kueri berikut pada perintah SQL untuk melihat nama pengguna dan plugin yang tersedia:
SELECT user, host, plugin FROM mysql.user;
Output berikut ini umum:
+----------------------------------+-----------+-----------------------+
| 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 |
+----------------------------------+-----------+-----------------------+
Membuat database dan tabel untuk aplikasi Anda
Gunakan langkah-langkah berikut untuk membuat database untuk aplikasi Anda dari skrip world.sql , lalu verifikasi detailnya:
Gunakan perintah berikut untuk membuat database dan tabel:
az mysql flexible-server execute \ --name $MYSQL_SERVER_INSTANCE \ --admin-password azureuser \ --admin-password '$MYSQL_PASSWORD' \ --file-path "./world-db/world.sql"Petunjuk / Saran
Anda juga dapat menggunakan
mysqluntuk membuat database dan tabel dari file skrip, tetapi perintah tersebut membutuhkan waktu lama untuk diselesaikan.Konfirmasikan bahwa database dan tabel berada di server Anda dengan menggunakan perintah berikut:
az mysql flexible-server connect \ --name $MYSQL_SERVER_INSTANCE \ --admin-user $MYSQL_USER \ --database-name world \ --interactiveSaat sistem meminta Anda, masukkan kata sandi MySQL yang Anda ambil sebelumnya.
Output berikut ini umum:
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 BoukalPada perintah SQL, gunakan kueri berikut untuk memperlihatkan database di server:
show databases;Output berikut ini umum:
+--------------------+ | Database | +--------------------+ | flexibleserverdb | | information_schema | | mysql | | newdatabase | | performance_schema | | sys | | world | +--------------------+ 7 rows in set Time: 0.152sGunakan kueri berikut untuk mencantumkan tabel dalam
worlddatabase:show tables;Output berikut ini umum:
+-----------------+ | Tables_in_world | +-----------------+ | city | | country | | countrylanguage | +-----------------+ 3 rows in set Time: 0.145s
Menjalankan kueri pada database sampel
Gunakan langkah-langkah berikut untuk menampilkan konten world database:
Cantumkan semua informasi benua dengan menggunakan kueri berikut:
select distinct Continent from country ;Output berikut ini umum:
+---------------+ | Continent | +---------------+ | North America | | Asia | | Africa | | Europe | | South America | | Oceania | | Antarctica | +---------------+Mencantumkan nama negara dan kode negara menurut benua dengan menggunakan kueri berikut:
select code,name from country where Continent='Asia';Output berikut ini umum:
+------+----------------------+ | 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)Cantumkan semua kota yang memiliki populasi lebih besar dari 1 juta dengan menggunakan kueri berikut:
select * from city where CountryCode='JPN' AND Population > 1000000 ORDER BY Population DESC;Output berikut ini umum:
+------+---------------------+-------------+-----------+------------+ | 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)
Ringkasan unit
Anda telah menyelesaikan penyiapan dan persiapan untuk instance Azure Database for MySQL - Server Fleksibel Anda. Unit berikutnya memperkenalkan Anda pada proses penyebaran aplikasi EE Jakarta ke JBoss EAP di Azure App Service, bersama dengan berbagai opsi konfigurasi.