Snabbstart: Använda Ruby för att ansluta och fråga efter data i Azure Database for MySQL
GÄLLER FÖR: Azure Database for MySQL – enskild server
Viktigt!
Azure Database for MySQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till en flexibel Azure Database for MySQL-server. Mer information om hur du migrerar till en flexibel Azure Database for MySQL-server finns i Vad händer med Azure Database for MySQL – enskild server?
Den här snabbstarten visar hur du ansluter till en Azure Database for MySQL med hjälp av ett Ruby-program och mysql2-pärlan från Plattformarna Windows, Linux och Mac. Den visar hur du använder SQL-instruktioner för att fråga, infoga, uppdatera och ta bort data i databasen. Det här avsnittet förutsätter att du är van att utveckla i Ruby och att du saknar erfarenhet av Azure Database for MySQL.
Förutsättningar
I den här snabbstarten används de resurser som skapades i någon av följande guider som utgångspunkt:
- Skapa en Azure Database för MySQL med Azure Portal
- Skapa en Azure Database för MySQL-server med Azure CLI
Viktigt!
Kontrollera att IP-adressen som du ansluter från har lagts till serverns brandväggsregler med hjälp av Azure Portal eller Azure CLI
Installera Ruby
Installera Ruby, Gem och MySQL2-biblioteket på din egen dator.
- Hämta och installera den version 2.3 av Ruby.
- Starta en ny kommandotolk (cmd) från Start-menyn.
- Ändra katalog till katalogen Ruby för version 2.3.
cd c:\Ruby23-x64\bin
- Kontrollera Ruby-installationen genom att köra kommandot
ruby -v
och se den installerade versionen. - Kontrollera Gem-installationen genom att köra kommandot
gem -v
och se den installerade versionen. - Skapa Mysql2-modulen för Ruby med Gem genom att köra kommandot
gem install mysql2
.
Hämta anslutningsinformation
Skaffa den information som du behöver för att ansluta till Azure Database för MySQL. Du behöver det fullständiga servernamnet och inloggningsuppgifter.
- Logga in på Azure-portalen.
- På den vänstra menyn i Azure Portal klickar du på Alla resurser. Sök sedan efter den server som du skapade (till exempel mydemoserver).
- Klicka på servernamnet.
- På serverpanelen Översikt antecknar du Servernamn och Inloggningsnamn för serveradministratören. Om du glömmer lösenordet kan du även återställa det på den här panelen.
Köra Ruby-kod
- Klistra in Ruby-koden nedan i textfiler och spara sedan filerna till en projektmapp med filtillägget .rb (till exempel
C:\rubymysql\createtable.rb
eller/home/username/rubymysql/createtable.rb
). - För att köra koden startar du kommandotolken eller bash-gränssnittet. Ändra katalog till din projektmapp, till exempel
cd rubymysql
- Skriv Ruby-kommandot följt av filnamnet, till exempel
ruby createtable.rb
, för att köra programmet. - I Windows, om Ruby-programmet inte finns på sökvägen för miljövariabeln, kan du behöva använda den fullständiga sökvägen för att starta nodprogrammet, till exempel
"c:\Ruby23-x64\bin\ruby.exe" createtable.rb
Ansluta och skapa en tabell
Använd följande kod för att ansluta och skapa en tabell med hjälp av CREATE TABLE-SQL-instruktionen följt av INSERT INTO-SQL-instruktioner för att lägga till rader i tabellen.
Koden använder en mysql2::client-klass för att ansluta till MySQL-servern. Sedan anropas metoden query()
för att köra kommandona DROP, CREATE TABLE och INSERT INTO. close()
Anropa slutligen för att stänga anslutningen innan du avslutar.
Ersätt strängarna host
, database
, username
och password
med egna värden.
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
Läsa data
Använd följande kod för att ansluta och läsa data med en SELECT-SQL-instruktion.
Koden använder en mysql2::client-klass för att ansluta till Azure Database for MySQL med new()
metoden . Sedan anropas metoden query()
för att köra SELECT-kommandona. Sedan anropas metoden close()
för att stänga anslutningen innan den avslutas.
Ersätt strängarna host
, database
, username
och password
med egna värden.
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
Uppdatera data
Använd följande kod för att ansluta och uppdatera data med en UPDATE-SQL-instruktion.
Koden använder en mysql2::client-klass .new() metod för att ansluta till Azure-databas för MySQL. Sedan anropas metoden query()
för att köra UPDATE-kommandona. Sedan anropas metoden close()
för att stänga anslutningen innan den avslutas.
Ersätt strängarna host
, database
, username
och password
med egna värden.
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
Ta bort data
Använd följande kod för att ansluta och läsa data med SQL-instruktionen DELETE.
Koden använder en mysql2::client-klass för att ansluta till MySQL-servern, köra KOMMANDOT DELETE och sedan stänga anslutningen till servern.
Ersätt strängarna host
, database
, username
och password
med egna värden.
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
Rensa resurser
Om du vill rensa alla resurser som används under den här snabbstarten tar du bort resursgruppen med följande kommando:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes