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 :

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.

  1. Téléchargez et installez la version 2.3 de Ruby.
  2. Démarrez une nouvelle invite de commandes (cmd) à partir du menu Démarrer.
  3. Basculez dans le répertoire Ruby pour la version 2.3. cd c:\Ruby23-x64\bin
  4. Testez l’installation de Ruby en exécutant la commande ruby -v pour voir la version installée.
  5. Testez l’installation de Gem en exécutant la commande gem -v pour voir la version installée.
  6. 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.

  1. Connectez-vous au portail Azure.
  2. 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.
  3. Cliquez sur 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 le code Ruby

  1. 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.
  2. 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.
  3. Tapez ensuite la commande Ruby suivie du nom de fichier, tel que ruby createtable.rb pour exécuter l’application.
  4. 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

Étapes suivantes