Démarrage rapide : Utilisation de Node.js pour vous connecter et interroger des données dans Azure Database pour MySQL

Attention

Cet article fait référence à CentOS, une distribution Linux proche de l’état EOL (End Of Life). Faites le point sur votre utilisation afin de vous organiser en conséquence. Pour plus d’informations, consultez les conseils d’aide relatifs à la fin de vie de CentOS.

S’APPLIQUE À : Azure Database pour MySQL - Serveur unique

Important

Le serveur unique Azure Database pour MySQL est en voie de mise hors service. Nous vous conseillons vivement de procéder à une mise à niveau vers Azure Database pour MySQL – Serveur flexible. Pour obtenir plus d’informations sur la migration vers Azure Database pour MySQL – Serveur flexible, consultez Qu’en est-il du Serveur unique Azure Database pour MySQL ?

Dans ce guide de démarrage rapide, vous vous connectez à Azure Database pour MySQL avec Node.js. Vous utilisez ensuite des instructions SQL pour interroger, insérer, mettre à jour et supprimer des données dans la base de données depuis des plateformes Mac, Linux et Windows.

Cet article part du principe que vous connaissez les bases du développement avec Node.js, mais que vous ne savez pas comment utiliser Azure Database pour MySQL.

Prérequis

Important

Vérifiez que l’adresse IP à partir de laquelle vous vous connectez a été ajoutée aux règles de pare-feu du serveur à l’aide du portail Azure ou d’Azure CLI

Installer Node.js et le connecteur MySQL

Selon votre plateforme, suivez les instructions de la section appropriée pour installer Node.js. Utilisez npm pour installer le package mysql2 et ses dépendances dans votre dossier du projet.

  1. Visitez la page des téléchargements Node.js et sélectionnez l’option souhaitée pour le programme d’installation de Windows.

  2. Créez un dossier de projet local, tel que nodejsmysql.

  3. Ouvrez l’invite de commandes, puis changez de répertoire dans le dossier du projet, tel que cd c:\nodejsmysql\

  4. Exécutez l’outil NPM pour installer la bibliothèque mysql2 dans le dossier du projet.

    cd c:\nodejsmysql\
    "C:\Program Files\nodejs\npm" install mysql2
    "C:\Program Files\nodejs\npm" list
    
  5. Vérifiez l’installation en consultant le texte de sortie npm list. Le numéro de version peut varier étant donné que de nouveaux correctifs sont publiés.

Obtenir des informations de connexion

Obtenez les informations requises pour vous connecter à la base de données Azure pour MySQL. Vous devez disposer du nom de serveur complet et des informations d’identification.

  1. Connectez-vous au portail Azure.
  2. Dans le menu de gauche du portail Azure, sélectionnez Toutes les ressources, puis recherchez le serveur que vous venez de créer, par exemple mydemoserver.
  3. Sélectionnez le nom du serveur.
  4. Dans le panneau Vue d’ensemble du serveur, notez le nom du serveur et le nom de connexion de l’administrateur du serveur. Si vous oubliez votre mot de passe, vous pouvez également le réinitialiser dans ce panneau. Nom du serveur de base de données Azure pour MySQL

Exécuter les exemples de code

  1. Collez le code JavaScript dans des nouveaux fichiers texte, puis enregistrez-le dans un dossier de projet avec l’extension de fichier .js (par exemple C:\nodejsmysql\createtable.js ou /home/username/nodejsmysql/createtable.js).

  2. Remplacez les options de configuration host, user, password et database dans le code par les valeurs que vous avez spécifiées lors de la création du serveur et de la base de données.

  3. Obtenir un certificat SSL : téléchargez le certificat nécessaire pour communiquer via le protocole SSL avec votre serveur Azure Database pour MySQL à partir de https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem et enregistrez le fichier de certificat sur votre disque local.

    Pour Microsoft Internet Explorer et Microsoft Edge : une fois le téléchargement terminé, renommez le certificat DigiCertGlobalRootCA.crt.pem.

    Consultez les liens suivants afin d’obtenir des certificats pour des serveurs de clouds souverains : Azure Government, Microsoft Azure géré par 21Vianet et Azure Allemagne.

  4. Dans l’option de configuration ssl, remplacez le nom de fichier ca-cert par le chemin d’accès à ce fichier local.

  5. Ouvrez l’invite de commande ou l’interpréteur de commandes Bash, puis changez de répertoire dans votre dossier de projet cd nodejsmysql.

  6. Pour exécuter l’application, tapez la commande de nœud suivie du nom de fichier, tel que node createtable.js.

  7. Sous Windows, si l’application de nœud ne se trouve pas dans votre chemin d’accès de la variable d’environnement, vous devez peut-être utiliser le chemin d’accès complet pour lancer l’application de nœud, tel que "C:\Program Files\nodejs\node.exe" createtable.js

Se connecter, créer des tables et insérer des données

Utilisez le code suivant pour vous connecter et charger les données à l’aide d’instructions SQL CREATE TABLE et INSERT INTO.

La méthode mysql.createConnection() est utilisée pour interagir avec le serveur MySQL. La fonction connect() est utilisée pour établir la connexion avec le serveur. La fonction query() est utilisée pour exécuter la requête SQL sur la base de données MySQL.

const mysql = require('mysql2');
const fs = require('fs');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};

const conn = new mysql.createConnection(config);

conn.connect(
    function (err) {
    if (err) {
        console.log("!!! Cannot connect !!! Error:");
        throw err;
    }
    else
    {
       console.log("Connection established.");
           queryDatabase();
    }
});

function queryDatabase(){
    conn.query('DROP TABLE IF EXISTS inventory;', function (err, results, fields) {
        if (err) throw err;
        console.log('Dropped inventory table if existed.');
    })
        conn.query('CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);',
            function (err, results, fields) {
                if (err) throw err;
        console.log('Created inventory table.');
    })
    conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['banana', 150],
            function (err, results, fields) {
                if (err) throw err;
        else console.log('Inserted ' + results.affectedRows + ' row(s).');
        })
    conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['orange', 154],
            function (err, results, fields) {
                if (err) throw err;
        console.log('Inserted ' + results.affectedRows + ' row(s).');
        })
    conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['apple', 100],
    function (err, results, fields) {
                if (err) throw err;
        console.log('Inserted ' + results.affectedRows + ' row(s).');
        })
    conn.end(function (err) {
    if (err) throw err;
    else  console.log('Done.')
    });
};

Lire les données

Utilisez le code suivant pour vous connecter et lire des données à l’aide d’une instruction SQL SELECT.

La méthode mysql.createConnection() est utilisée pour interagir avec le serveur MySQL. La méthode connect() est utilisée pour établir la connexion avec le serveur. La méthode query() est utilisée pour exécuter la requête SQL sur la base de données MySQL. Le tableau de résultats est utilisé pour contenir les résultats de la requête.

const mysql = require('mysql2');
const fs = require('fs');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};

const conn = new mysql.createConnection(config);

conn.connect(
    function (err) {
        if (err) {
            console.log("!!! Cannot connect !!! Error:");
            throw err;
        }
        else {
            console.log("Connection established.");
            readData();
        }
    });

function readData(){
    conn.query('SELECT * FROM inventory',
        function (err, results, fields) {
            if (err) throw err;
            else console.log('Selected ' + results.length + ' row(s).');
            for (i = 0; i < results.length; i++) {
                console.log('Row: ' + JSON.stringify(results[i]));
            }
            console.log('Done.');
        })
    conn.end(
        function (err) {
            if (err) throw err;
            else  console.log('Closing connection.')
    });
};

Mettre à jour des données

Utilisez le code suivant pour vous connecter et mettre à jour les données à l’aide d’une instruction SQL UPDATE.

La méthode mysql.createConnection() est utilisée pour interagir avec le serveur MySQL. La méthode connect() est utilisée pour établir la connexion avec le serveur. La méthode query() est utilisée pour exécuter la requête SQL sur la base de données MySQL.

const mysql = require('mysql2');
const fs = require('fs');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};

const conn = new mysql.createConnection(config);

conn.connect(
    function (err) {
        if (err) {
            console.log("!!! Cannot connect !!! Error:");
            throw err;
        }
        else {
            console.log("Connection established.");
            updateData();
        }
    });

function updateData(){
       conn.query('UPDATE inventory SET quantity = ? WHERE name = ?', [200, 'banana'],
            function (err, results, fields) {
                if (err) throw err;
                else console.log('Updated ' + results.affectedRows + ' row(s).');
           })
       conn.end(
           function (err) {
                if (err) throw err;
                else  console.log('Done.')
        });
};

Suppression de données

Utilisez le code suivant pour vous connecter et supprimer les données à l’aide d’une instruction SQL DELETE.

La méthode mysql.createConnection() est utilisée pour interagir avec le serveur MySQL. La méthode connect() est utilisée pour établir la connexion avec le serveur. La méthode query() est utilisée pour exécuter la requête SQL sur la base de données MySQL.

const mysql = require('mysql2');
const fs = require('fs');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};

const conn = new mysql.createConnection(config);

conn.connect(
    function (err) {
        if (err) {
            console.log("!!! Cannot connect !!! Error:");
            throw err;
        }
        else {
            console.log("Connection established.");
            deleteData();
        }
    });

function deleteData(){
       conn.query('DELETE FROM inventory WHERE name = ?', ['orange'],
            function (err, results, fields) {
                if (err) throw err;
                else console.log('Deleted ' + results.affectedRows + ' row(s).');
           })
       conn.end(
           function (err) {
                if (err) throw err;
                else  console.log('Done.')
        });
};

Nettoyer les ressources

Pour nettoyer toutes les ressources utilisées dans le cadre de ce guide de démarrage rapide, supprimez le groupe de ressources à l’aide de la commande suivante :

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

Étapes suivantes