Partager via


Démarrage rapide : Utiliser Node.js pour se connecter et interroger des données dans Azure Database pour MySQL - Serveur flexible

S’APPLIQUE À : Azure Database pour MySQL – Serveur flexible

Dans ce guide de démarrage rapide, vous allez utiliser Node.js pour vous connecter au serveur flexible Azure Database pour MySQL. 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 savez développer avec Node.js, mais que vous n’avez jamais travaillé avec le serveur flexible Azure Database pour MySQL.

Prérequis

Ce guide de démarrage rapide s’appuie sur les ressources créées dans l’un de ces guides :

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 à l’instance de serveur flexible Azure Database pour MySQL. Vous devez disposer du nom du 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.

Exécuter les exemples de code

  1. Collez le code JavaScript dans des nouveaux fichiers textes, 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 flexible et de la base de données MySQL.
  3. Obtenir le certificat SSL : pour utiliser des connexions chiffrées avec vos applications clientes, vous devez télécharger le certificat SSL public qui est également disponible dans le panneau Mise en réseau du Portail Azure, comme indiqué dans la capture d’écran ci-dessous. Capture d’écran montrant comment télécharger un certificat SSL public à partir du Portail Azure.

Téléchargez le fichier de certificat dans votre l’emplacement favori.

  1. Dans l'option de configuration ssl, remplacez le nom de fichier ca-cert par le chemin d’accès à ce fichier local. Cela permet à l’application de se connecter en toute sécurité à la base de données via SSL.
  2. Ouvrez l’invite de commande ou l’interpréteur de commandes Bash, puis changez de répertoire dans votre dossier de projet cd nodejsmysql.
  3. Pour exécuter l’application, tapez la commande de nœud suivie du nom de fichier, tel que node createtable.js.
  4. 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 l’instance de serveur flexible Azure Database pour 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: 'your_server_name.mysql.database.azure.com',
    user: 'your_admin_name',
    password: 'your_admin_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', 250],
        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 l’instance de serveur flexible Azure Database pour 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: 'your_server_name.mysql.database.azure.com',
    user: 'your_admin_name',
    password: 'your_admin_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 l’instance de serveur flexible Azure Database pour 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: 'your_server_name.mysql.database.azure.com',
    user: 'your_admin_name',
    password: 'your_admin_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 = ?', [75, '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 l’instance de serveur flexible Azure Database pour 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: 'your_server_name.mysql.database.azure.com',
    user: 'your_admin_name',
    password: 'your_admin_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