Ejercicio: Implementación de Azure Database for MySQL
En este ejercicio, creará la instancia de Azure Database for MySQL y la cargará con datos de ejemplo.
Obtención de la aplicación de ejemplo y el script
En primer lugar, clone la aplicación de ejemplo y el script de shell desde el repositorio de GitHub:
git clone https://github.com/MicrosoftDocs/mslearn-jakarta-ee-azure.git
Después de clonar el proyecto, verá los directorios y archivos siguientes:
├── Azure-MySQL-Setup-For-Sample-App.md
├── README.md
├── 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
└── world.sql
Inicio de sesión en Azure
Si todavía no lo ha hecho, inicie sesión en Azure:
az login
Configuración de la ubicación de instalación predeterminada
Los comandos que ejecuta el script usado en este módulo esperan una opción --location
. Puede especificar un valor predeterminado para esta opción con el comando siguiente.
az configure --defaults location=<desired location>
Nota
Se recomienda cambiar a la misma región para implementar la aplicación de Java EE.
Creación de una instancia de Azure Database for MySQL
Una vez que haya iniciado sesión, use el script del proyecto setup_mysql.sh
para crear la instancia de Azure Database for MySQL. Asegúrese de que se encuentra en el directorio mslearn-jakarta-ee-azure
.
Importante
Ejecute el comando siguiente en un entorno IPv4. Si el entorno tiene una dirección IPv6, este comando producirá un error porque la configuración del firewall todavía no admite direcciones IPv6.
./setup_mysql.sh flexible
Anote los valores de clave que aparecen en la salida del comando. Los usará en pasos posteriores.
[INFO] -------------------------------------------------------
[INFO] Azure Database for MySQL Setup Completed SUCCESS
[INFO] -------------------------------------------------------
[INFO] 1. Please copy the following value into your temporal file
[INFO]
[INFO] RESOURCE GROUP is MySQL-RG-20201208152233
[INFO] MySQL HOSTNAME is mysqlserver-wqcnzwhqvw.mysql.database.azure.com
[INFO] MySQL USERNAME is azureuser
[INFO] MySQL PASSWORD is **********
[INFO]
[INFO]
[INFO] 2. Please execute the following command.
[INFO]
[INFO] mysql -u azureuser -h mysqlserver-wqcnzwhqvw.mysql.database.azure.com -p [Enter Key]
[INFO] Enter password: ********** [COPY&PASTE]
[INFO]
[INFO]
[INFO] 3. Clean up Resource (Delete MySQL DB)
[INFO] az group delete -n MySQL-RG-20201208152233
[INFO] -------------------------------------------------------
Obtención de datos de la base de datos de ejemplo
En este módulo, usará una base de datos denominada world
de ejemplo del sitio web oficial de MySQL. Para obtener los datos:
Descargue el archivo de base de datos:
Bashcurl -o world-db.zip https://downloads.mysql.com/docs/world-db.zip
Descomprima el archivo de base de datos:
Bashunzip world-db.zip
Acceda al archivo SQL:
Bashcd world-db ls -l world.sql
Output-rw-r--r-- 1 ****** wheel 398635 1 7 12:25 world.sql
Inicio de sesión en la base de datos MySQL
Después de obtener la base de datos MySQL, puede acceder a ella mediante el comando mysql
y la contraseña que ha registrado al crear la instancia de Servidor flexible:
mysql -u azureuser -h mysqlserver-<your instance>.mysql.database.azure.com -p [Enter]
Enter password: [**********]
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.29-log MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Creación de una base de datos y tablas para la aplicación
Ejecute el comando mysql
siguiente:
mysql> source world.sql
Query OK, 0 rows affected (0.01 sec)
....
....
Query OK, 0 rows affected (0.01 sec)
mysql>
La base de datos world
y sus tablas se crean automáticamente en la base de datos MySQL. Esta acción tarda varios minutos.
Confirmación de la base de datos y las tablas
Confirme que las bases de datos están en el servidor:
mysqlmysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | world | +--------------------+ 5 rows in set (0.02 sec)
Apunte a los datos de la base de datos
world
:mysqlmysql> use world; Database changed
Confirme las tablas en la base de datos
world
:mysqlmysql> show tables; +-----------------+ | Tables_in_world | +-----------------+ | city | | country | | countrylanguage | +-----------------+ 3 rows in set (0.04 sec)
Consultar la base de datos de ejemplo
Ahora puede ver el contenido de la base de datos world
.
Obtenga toda la información del continente:
mysqlmysql> select distinct Continent from country ; +---------------+ | Continent | +---------------+ | North America | | Asia | | Africa | | Europe | | South America | | Oceania | | Antarctica | +---------------+
Obtenga los nombres de países y códigos de país por continente:
mysqlmysql> select code,name from country where Continent='Asia'; +------+----------------------+ | 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)
Obtenga todas las ciudades, con una población superior a 1 millón:
mysqlmysql> select * from city where CountryCode='JPN' AND Population > 1000000 ORDER BY Population DESC; +------+---------------------+-------------+-----------+------------+ | 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)
Resumen de la unidad
Ya ha completado la instalación y preparación del servidor MySQL. En la unidad siguiente, verá los pasos necesarios para implementar la aplicación de Java EE (Jakarta EE) en JBoss EAP en Azure App Service y configurarla.