Ejercicio: Implementación de Azure Database for MySQL

Completado

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:

  1. Descargue el archivo de base de datos:

    curl -o world-db.zip https://downloads.mysql.com/docs/world-db.zip
    
  2. Descomprima el archivo de base de datos:

    unzip world-db.zip
    
  3. Acceda al archivo SQL:

    cd world-db
    ls -l world.sql
    
    -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

  1. Confirme que las bases de datos están en el servidor:

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    | world              |
    +--------------------+
    5 rows in set (0.02 sec)
    
  2. Apunte a los datos de la base de datos world:

    mysql> use world;
    Database changed
    
  3. Confirme las tablas en la base de datos world:

    mysql> 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.

  1. Obtenga toda la información del continente:

    mysql> select distinct Continent from country ;
    +---------------+
    | Continent     |
    +---------------+
    | North America |
    | Asia          |
    | Africa        |
    | Europe        |
    | South America |
    | Oceania       |
    | Antarctica    |
    +---------------+
    
  2. Obtenga los nombres de países y códigos de país por continente:

    mysql> 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)
    
  3. Obtenga todas las ciudades, con una población superior a 1 millón:

    mysql> 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.