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 :
- Créer une instance de serveur flexible Azure Database pour PostgreSQL à l’aide du Portail Azure
- Créer une instance de serveur flexible Azure Database pour MySQL à l’aide d’Azure CLI
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.
Visitez la page des téléchargements Node.js et sélectionnez l’option souhaitée pour le programme d’installation de Windows.
Créez un dossier de projet local, tel que
nodejsmysql
.Ouvrez l’invite de commandes, puis changez de répertoire dans le dossier du projet, tel que
cd c:\nodejsmysql\
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
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.
- Connectez-vous au portail Azure.
- 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.
- Sélectionnez le nom du serveur.
- 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
- 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).
- Remplacez les options de configuration
host
,user
,password
etdatabase
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. - 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.
Téléchargez le fichier de certificat dans votre l’emplacement favori.
- Dans l'option de configuration
ssl
, remplacez le nom de fichierca-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. - Ouvrez l’invite de commande ou l’interpréteur de commandes Bash, puis changez de répertoire dans votre dossier de projet
cd nodejsmysql
. - Pour exécuter l’application, tapez la commande de nœud suivie du nom de fichier, tel que
node createtable.js
. - 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
- Connectivité chiffrée avec le protocole TLS (Transport Layer Security) 1.2 dans le serveur flexible Azure Database pour MySQL.
- En savoir plus sur les Réseaux dans le serveur flexible Azure Database pour MySQL.
- Créer et gérer des règles de pare-feu du serveur flexible Azure Database pour MySQL à l’aide du portail Azure.
- Créer et gérer un réseau virtuel de serveur flexible Azure Database pour MySQL avec le portail Azure.