Démarrage rapide : Utiliser Ruby pour vous connecter et interroger des données dans Azure Database pour MySQL
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 ?
Ce démarrage rapide vous explique comment vous connecter à Azure Database pour MySQL via une application Ruby et le gem mysql2, à partir de plateformes Windows, Linux et Mac. Il détaille l’utilisation d’instructions SQL pour interroger la base de données, la mettre à jour, y insérer des données ou en supprimer. Cette rubrique suppose que vous connaissez les bases du développement à l’aide de Ruby, et que vous ne savez pas utiliser la base de données Azure 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 un serveur de base de données Azure pour MySQL à l’aide du Portail Azure
- Création d’un serveur de base de données Azure 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 Ruby
Installez Ruby, Gem et la bibliothèque MySQL2 sur votre propre ordinateur.
- Téléchargez et installez la version 2.3 de Ruby.
- Démarrez une nouvelle invite de commandes (cmd) à partir du menu Démarrer.
- Basculez dans le répertoire Ruby pour la version 2.3.
cd c:\Ruby23-x64\bin
- Testez l’installation de Ruby en exécutant la commande
ruby -v
pour voir la version installée. - Testez l’installation de Gem en exécutant la commande
gem -v
pour voir la version installée. - Compilez le module Mysql2 pour Ruby à l’aide de Gem, en exécutant la commande
gem install mysql2
.
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.
- Connectez-vous au portail Azure.
- Dans le menu de gauche du portail Azure, cliquez sur Toutes les ressources, puis recherchez le serveur que vous venez de créer, par exemple mydemoserver.
- Cliquez sur 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 le code Ruby
- Collez le code Ruby des sections ci-dessous dans les fichiers textes puis enregistrez les fichiers dans un dossier de projet avec l’extension de fichier .rb, tel que
C:\rubymysql\createtable.rb
ou/home/username/rubymysql/createtable.rb
. - Pour exécuter le code, lancez l’invite de commandes ou l’interpréteur de commandes Bash. Basculez dans votre dossier de projet
cd rubymysql
. - Tapez ensuite la commande Ruby suivie du nom de fichier, tel que
ruby createtable.rb
pour exécuter l’application. - Avec le système d’exploitation Windows, si l’application Ruby n’est pas dans votre variable d’environnement de chemin d’accès, vous devrez peut-être utiliser le chemin d’accès complet pour lancer l’application de nœud, tel que
"c:\Ruby23-x64\bin\ruby.exe" createtable.rb
Se connecter et créer une table
Utilisez le code suivant pour vous connecter et créer une table à l’aide de l’instruction CREATE TABLE, suivie des instructions SQL INSERT INTO pour ajouter des lignes à la table.
Le code utilise une classe mysql2 :: client pour se connecter au serveur MySQL. Ensuite, il appelle la méthode query()
pour exécuter les commandes DROP, CREATE TABLE et INSERT INTO. Enfin, appelez close()
pour fermer la connexion, avant de terminer.
Remplacez les chaînes host
, database
, username
et password
par vos propres valeurs.
require 'mysql2'
begin
# Initialize connection variables.
host = String('mydemoserver.mysql.database.azure.com')
database = String('quickstartdb')
username = String('myadmin@mydemoserver')
password = String('yourpassword')
# Initialize connection object.
client = Mysql2::Client.new(:host => host, :username => username, :database => database, :password => password)
puts 'Successfully created connection to database.'
# Drop previous table of same name if one exists
client.query('DROP TABLE IF EXISTS inventory;')
puts 'Finished dropping table (if existed).'
# Drop previous table of same name if one exists.
client.query('CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);')
puts 'Finished creating table.'
# Insert some data into table.
client.query("INSERT INTO inventory VALUES(1, 'banana', 150)")
client.query("INSERT INTO inventory VALUES(2, 'orange', 154)")
client.query("INSERT INTO inventory VALUES(3, 'apple', 100)")
puts 'Inserted 3 rows of data.'
# Error handling
rescue Exception => e
puts e.message
# Cleanup
ensure
client.close if client
puts 'Done.'
end
Lire les données
Utilisez le code suivant pour vous connecter et lire des données à l’aide d’une instruction SQL SELECT.
Le code utilise une classe mysql2::client pour se connecter à Azure Database pour MySQL à l’aide de la méthode new()
. Ensuite, il appelle la méthode query()
pour exécuter les commandes SELECT. Ensuite, il appelle la méthode close()
pour fermer la connexion, avant de s’arrêter.
Remplacez les chaînes host
, database
, username
et password
par vos propres valeurs.
require 'mysql2'
begin
# Initialize connection variables.
host = String('mydemoserver.mysql.database.azure.com')
database = String('quickstartdb')
username = String('myadmin@mydemoserver')
password = String('yourpassword')
# Initialize connection object.
client = Mysql2::Client.new(:host => host, :username => username, :database => database, :password => password)
puts 'Successfully created connection to database.'
# Read data
resultSet = client.query('SELECT * from inventory;')
resultSet.each do |row|
puts 'Data row = (%s, %s, %s)' % [row['id'], row['name'], row['quantity']]
end
puts 'Read ' + resultSet.count.to_s + ' row(s).'
# Error handling
rescue Exception => e
puts e.message
# Cleanup
ensure
client.close if client
puts 'Done.'
end
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.
Le code utilise une classe mysql2::client de méthode .new() pour se connecter à la base de données Azure pour MySQL. Ensuite, il appelle la méthode query()
pour exécuter les commandes UPDATE. Ensuite, il appelle la méthode close()
pour fermer la connexion, avant de s’arrêter.
Remplacez les chaînes host
, database
, username
et password
par vos propres valeurs.
require 'mysql2'
begin
# Initialize connection variables.
host = String('mydemoserver.mysql.database.azure.com')
database = String('quickstartdb')
username = String('myadmin@mydemoserver')
password = String('yourpassword')
# Initialize connection object.
client = Mysql2::Client.new(:host => host, :username => username, :database => database, :password => password)
puts 'Successfully created connection to database.'
# Update data
client.query('UPDATE inventory SET quantity = %d WHERE name = %s;' % [200, '\'banana\''])
puts 'Updated 1 row of data.'
# Error handling
rescue Exception => e
puts e.message
# Cleanup
ensure
client.close if client
puts 'Done.'
end
Suppression de données
Utilisez le code suivant pour vous connecter et lire les données à l’aide d’une instruction SQL DELETE.
Le code utilise une classe mysql2 :: client pour se connecter au serveur MySQL, exécuter la commande DELETE, puis fermer la connexion au serveur.
Remplacez les chaînes host
, database
, username
et password
par vos propres valeurs.
require 'mysql2'
begin
# Initialize connection variables.
host = String('mydemoserver.mysql.database.azure.com')
database = String('quickstartdb')
username = String('myadmin@mydemoserver')
password = String('yourpassword')
# Initialize connection object.
client = Mysql2::Client.new(:host => host, :username => username, :database => database, :password => password)
puts 'Successfully created connection to database.'
# Delete data
resultSet = client.query('DELETE FROM inventory WHERE name = %s;' % ['\'orange\''])
puts 'Deleted 1 row.'
# Error handling
rescue Exception => e
puts e.message
# Cleanup
ensure
client.close if client
puts 'Done.'
end
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