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:
- Een Azure-database voor een MySQL-server maken met behulp van Azure Portal
- Een Azure-database voor een MySQL-server maken met behulp van Azure CLI
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.
- Download en installeer versie 2.3 van Ruby.
- Open een nieuw opdrachtprompt (cmd) vanuit het menu Start.
- Wijzig de map in de Ruby-map voor versie 2.3.
cd c:\Ruby23-x64\bin
- Test de Ruby-installatie door met de opdracht
ruby -v
te controleren welke versie er is geïnstalleerd. - Test de Gem-installatie door met de opdracht
gem -v
te controleren welke versie er is geïnstalleerd. - 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.
- Meld u aan bij Azure Portal.
- Klik in het menu aan de linkerkant in Azure Portal op Alle resources en zoek naar de server die u hebt gemaakt (bijvoorbeeld mydemoserver).
- Klik op de servernaam.
- 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.
Ruby-code uitvoeren
- 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
. - Voor het uitvoeren van de code opent u de opdrachtprompt of bash-shell. Ga naar de projectmap
cd rubymysql
- Typ vervolgens de Ruby-opdracht, gevolgd door de bestandsnaam, zoals
ruby createtable.rb
, om de toepassing uit te voeren. - 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