Exercice – Déployer Azure Database pour MySQL

Effectué

Dans cet exercice, vous allez créer une instance Azure Database pour MySQL, puis vous allez y charger des exemples de données.

Obtenir l’exemple d’application et le script

Tout d’abord, clonez l’exemple d’application et le script d’interpréteur de commandes à partir du dépôt GitHub :

git clone https://github.com/MicrosoftDocs/mslearn-jakarta-ee-azure.git

Une fois que vous aurez cloné le projet, vous verrez les répertoires et les fichiers suivants :

├── 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

Connexion à Azure

Si vous ne l’avez pas déjà fait, connectez-vous à Azure :

az login

Configurer un emplacement d’installation par défaut

Les commandes exécutées par le script utilisé dans ce module attendent une option --location. Vous pouvez spécifier une valeur par défaut pour cette option avec la commande suivante.

az configure --defaults location=<desired location>

Notes

Nous vous recommandons de passer à cette même région pour le déploiement de votre application Java EE.

Créer une instance Azure Database pour MySQL

Une fois que vous êtes connecté, utilisez le script de projet setup_mysql.sh pour créer votre instance Azure Database pour MySQL. Assurez-vous d’être dans le répertoire mslearn-jakarta-ee-azure.

Important

Exécutez la commande suivante dans un environnement IPv4. Si votre environnement a une adresse IPv6, cette commande échoue parce que la configuration du pare-feu ne prend pas en charge les adresses IPv6.

./setup_mysql.sh flexible

Notez les valeurs de clé qui s’affichent dans la sortie de la commande. Vous aurez besoin de ces valeurs pour la suite.

[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] -------------------------------------------------------

Récupérer des données à partir de l’exemple de base de données

Dans ce module, vous allez utiliser un exemple de base de données nommé world, issu du site web MySQL officiel. Pour récupérer les données :

  1. Téléchargez le fichier de base de données :

    curl -o world-db.zip https://downloads.mysql.com/docs/world-db.zip
    
  2. Décompressez le fichier de base de données :

    unzip world-db.zip
    
  3. Accédez au fichier SQL :

    cd world-db
    ls -l world.sql
    
    -rw-r--r--  1 ******  wheel  398635  1  7 12:25 world.sql
    

Se connecter à la base de données MySQL

Une fois que vous avez récupéré la base de données MySQL, vous pouvez y accéder à l’aide de la commande mysql et du mot de passe que vous avez enregistré lors de la création de l’instance Serveur 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>

Créer une base de données et des tables pour votre application

Exécutez la commande mysql suivante :

mysql> source world.sql
Query OK, 0 rows affected (0.01 sec)
....
....
Query OK, 0 rows affected (0.01 sec)

mysql>

La base de données world et ses tables sont automatiquement créées dans votre base de données MySQL. Cette action prend plusieurs minutes.

Vérifier la base de données et les tables

  1. Vérifiez que les bases de données se trouvent sur votre serveur :

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    | world              |
    +--------------------+
    5 rows in set (0.02 sec)
    
  2. Référencez les données de la base de données world :

    mysql> use world;
    Database changed
    
  3. Vérifiez les tables de la base de données world :

    mysql> show tables;
    +-----------------+
    | Tables_in_world |
    +-----------------+
    | city            |
    | country         |
    | countrylanguage |
    +-----------------+
    3 rows in set (0.04 sec)
    

interroger l’exemple de base de données.

Vous pouvez maintenant afficher le contenu de la base de données world.

  1. Obtenez toutes les informations relatives aux continents :

    mysql> select distinct Continent from country ;
    +---------------+
    | Continent     |
    +---------------+
    | North America |
    | Asia          |
    | Africa        |
    | Europe        |
    | South America |
    | Oceania       |
    | Antarctica    |
    +---------------+
    
  2. Obtenez les noms et les codes des pays par continent :

    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. Obtenez toutes les villes dont la population dépasse 1 million d’habitants :

    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)
    

Récapitulatif de l’unité

Vous avez terminé la configuration et la préparation de votre serveur MySQL. Dans l’unité suivante, vous allez voir les étapes permettant de déployer et de configurer l’application Java EE (Jakarta EE) dans JBoss EAP sur Azure App Service.