Quickstart: Ruby gebruiken om verbinding te maken en query's uit te voeren op gegevens in Azure Database for MySQL

VAN TOEPASSING OP: Azure Database for MySQL - enkele server

Belangrijk

Azure Database for MySQL enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan een upgrade uit te voeren naar een flexibele Azure Database for MySQL-server. Zie Wat gebeurt er met Azure Database for MySQL Enkele server voor meer informatie over migreren naar Azure Database for MySQL Flexibele server ?

In deze quickstart ziet u hoe u verbinding maakt met een Azure Database for MySQL met behulp van een Ruby-toepassing en de mysql2-gem van Windows-, Linux- en Mac-platforms. U ziet hier hoe u SQL-instructies gebruikt om gegevens in de database op te vragen, in te voegen, bij te werken en te verwijderen. In dit artikel wordt ervan uitgegaan dat u bekend bent met het ontwikkelen met behulp van Ruby, maar geen ervaring hebt met het werken met Azure Database voor MySQL.

Vereisten

In deze snelstartgids worden de resources die in een van deze handleidingen zijn gemaakt, als uitgangspunt gebruikt:

Belangrijk

Controleer of het IP-adres waarmee u verbinding maakt aan de firewallregels van de server is toegevoegd met Azure Portal of Azure CLI

Ruby installeren

Installeer Ruby, Gem en de MySQL2-bibliotheek op de computer.

  1. Download en installeer versie 2.3 van Ruby.
  2. Open een nieuw opdrachtprompt (cmd) vanuit het menu Start.
  3. Wijzig de map in de Ruby-map voor versie 2.3. cd c:\Ruby23-x64\bin
  4. Test de Ruby-installatie door met de opdracht ruby -v te controleren welke versie er is geïnstalleerd.
  5. Test de Gem-installatie door met de opdracht gem -v te controleren welke versie er is geïnstalleerd.
  6. Bouw de MySQL2-module voor Ruby. Gebruik hiervoor Gem en voer de opdracht gem install mysql2 uit.

Verbindingsgegevens ophalen

Haal de verbindingsgegevens op die nodig zijn om verbinding te maken met de Azure Database voor MySQL. U hebt de volledig gekwalificeerde servernaam en aanmeldingsreferenties nodig.

  1. Meld u aan bij Azure Portal.
  2. Klik in het menu aan de linkerkant in Azure Portal op Alle resources en zoek naar de server die u hebt gemaakt (bijvoorbeeld mydemoserver).
  3. Klik op de servernaam.
  4. Ga naar het venster Overzicht van de server en noteer de Servernaam en de Aanmeldingsnaam van de serverbeheerder. Als u uw wachtwoord vergeet, kunt u het wachtwoord in dit venster opnieuw instellen. Azure Database for MySQL server name

Ruby-code uitvoeren

  1. Plak de Ruby-code uit de onderstaande secties in tekstbestanden en sla vervolgens de bestanden op in een projectmap met de bestandsextensie .rb, zoals C:\rubymysql\createtable.rb of /home/username/rubymysql/createtable.rb.
  2. Voor het uitvoeren van de code opent u de opdrachtprompt of bash-shell. Ga naar de projectmap cd rubymysql
  3. Typ vervolgens de Ruby-opdracht, gevolgd door de bestandsnaam, zoals ruby createtable.rb, om de toepassing uit te voeren.
  4. Als de Ruby-toepassing zich niet in uw padomgevingsvariabele bevindt, moet u in Windows mogelijk het volledige pad, zoals "c:\Ruby23-x64\bin\ruby.exe" createtable.rb, gebruiken om de knooppunttoepassing te starten.

Verbinding maken en een tabel maken

Gebruik de volgende code om een tabel te verbinden en te maken met behulp van de SQL-instructie CREATE TABLE, gevolgd door de SQL-instructie INSERT INTO om rijen in de tabel toe te voegen.

De code gebruikt een mysql2::client-klasse om verbinding te maken met de MySQL-server. Vervolgens wordt de methode query() aangeroepen om de opdrachten DROP, CREATE TABLE en INSERT INTO uit te voeren. Roep tot slot de close() aan om de verbinding vóór het sluiten te verbreken.

Vervang de tekenreeksen host, database, username en password door uw eigen waarden.

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

Gegevens lezen

Gebruik de volgende code om verbinding te maken en de gegevens te lezen met behulp van de SQL-instructie SELECT.

De code maakt gebruik van een mysql2::clientklasse om verbinding te maken met Azure Database for MySQL met behulp new()van de methode. Vervolgens wordt de methode query() aangeroepen om de SELECT-opdrachten uit te voeren. Vervolgens wordt de methode close() aangeroepen om de verbinding te sluiten voordat de verbinding wordt afgesloten.

Vervang de tekenreeksen host, database, username en password door uw eigen waarden.

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

Gegevens bijwerken

Gebruik de volgende code om verbinding te maken en de gegevens bij te werken met behulp van de SQL-instructie UPDATE.

De code gebruikt een mysql2::client .new()-methode om verbinding te maken met Azure Database voor MySQL. Vervolgens wordt de methode query() aangeroepen om de UPDATE-opdrachten uit te voeren. Vervolgens wordt de methode close() aangeroepen om de verbinding te sluiten voordat de verbinding wordt afgesloten.

Vervang de tekenreeksen host, database, username en password door uw eigen waarden.

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

Gegevens verwijderen

Gebruik de volgende code om verbinding te maken en de gegevens te lezen met behulp van de SQL-instructie DELETE.

De code gebruikt een mysql2::client-klasse om verbinding te maken met de MySQL-server, de DELETE-opdracht uit te voeren en vervolgens de verbinding met de server te sluiten.

Vervang de tekenreeksen host, database, username en password door uw eigen waarden.

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

Resources opschonen

Als u alle resources wilt opschonen die tijdens deze quickstart zijn gebruikt, verwijdert u de resourcegroep. Dit kan met de volgende opdracht:

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

Volgende stappen