Rychlý start: Použití Ruby k připojení a dotazování dat ve službě Azure Database for MySQL
PLATÍ PRO: Jednoúčelový server Azure Database for MySQL
Důležité
Jednoúčelový server Azure Database for MySQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for MySQL. Další informace o migraci na flexibilní server Azure Database for MySQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for MySQL?
Tento rychlý start ukazuje, jak se připojit ke službě Azure Database for MySQL pomocí aplikace Ruby a gemu mysql2 z platforem Windows, Linux a Mac. Ukazuje, jak pomocí příkazů jazyka SQL dotazovat, vkládat, aktualizovat a odstraňovat data v databázi. Toto téma předpokládá, že máte zkušenosti s vývojem pomocí Ruby a teprve začínáte pracovat se službou Azure Database for MySQL.
Požadavky
Tento rychlý start jako výchozí bod využívá prostředky vytvořené v některém z těchto průvodců:
- Vytvoření serveru Azure Database for MySQL pomocí webu Azure Portal
- Vytvoření serveru Azure Database for MySQL pomocí Azure CLI
Důležité
Ujistěte se, že ip adresa, ze které se připojujete, byla přidána pravidla brány firewall serveru pomocí webu Azure Portal nebo Azure CLI.
Instalace Ruby
Nainstalujte na svém počítači Ruby, nástroj Gem a knihovnu MySQL2.
- Stáhněte a nainstalujte Ruby verze 2.3.
- Z nabídky Start spusťte nový příkazový řádek (cmd).
- Změňte adresář na adresář Ruby verze 2.3.
cd c:\Ruby23-x64\bin
- Otestujte instalaci Ruby spuštěním příkazu
ruby -v
, který zobrazí nainstalovanou verzi. - Otestujte instalaci nástroje Gem spuštěním příkazu
gem -v
, který zobrazí nainstalovanou verzi. - Pomocí nástroje Gem sestavte modul Mysql2 pro Ruby spuštěním příkazu
gem install mysql2
.
Získání informací o připojení
Získejte informace o připojení potřebné pro připojení ke službě Azure Database for MySQL. Potřebujete plně kvalifikovaný název serveru a přihlašovací údaje.
- Přihlaste se k webu Azure Portal.
- V nabídce vlevo na webu Azure Portal klikněte na Všechny prostředky a vyhledejte vytvořený server (například mydemoserver).
- Klikněte na název serveru.
- Na panelu Přehled serveru si poznamenejte Název serveru a Přihlašovací jméno správce serveru. Pokud zapomenete své heslo, můžete ho na tomto panelu také resetovat.
Spuštění kódu Ruby
- Kód Ruby z dalších částí vložte do textových souborů a tyto soubory uložte s příponou .rb do složky projektu (například
C:\rubymysql\createtable.rb
nebo/home/username/rubymysql/createtable.rb
). - Pokud chcete kód spustit, spusťte příkazový řádek nebo prostředí Bash. Změňte adresář na složku vašeho projektu pomocí příkazu
cd rubymysql
. - Potom zadejte příkaz Ruby následovaný názvem souboru, například
ruby createtable.rb
, a spusťte aplikaci. - Pokud v operačním systému Windows není aplikace v Ruby ve vaší proměnné prostředí PATH, možná bude nutné ke spuštění aplikace v Ruby použít úplnou cestu, například
"c:\Ruby23-x64\bin\ruby.exe" createtable.rb
.
Připojení a vytvoření tabulky
Pomocí následujícího kódu se připojte a vytvořte tabulku s využitím příkazu CREATE TABLE jazyka SQL, po kterém následují příkazy INSERT INTO jazyka SQL, které do tabulky přidají řádky.
Kód používá třídu mysql2::client pro připojení k serveru MySQL. Potom volá metodu query()
pro spuštění příkazů DROP, CREATE TABLE a INSERT INTO. Nakonec zavolejte, close()
aby se připojení před ukončením ukončilo.
Nahraďte řetězce host
, database
, username
a password
vlastními hodnotami.
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
Čtení dat
Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu SELECT jazyka SQL.
Kód používá třídu mysql2::client pro připojení ke službě Azure Database for MySQL pomocí new()
metody. Potom volá metodu query()
pro spuštění příkazů SELECT. Potom volá metodu close()
ukončení připojení před ukončením.
Nahraďte řetězce host
, database
, username
a password
vlastními hodnotami.
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
Aktualizace dat
Pomocí následujícího kódu se připojte a aktualizujte data s využitím příkazu UPDATE jazyka SQL.
Kód pro připojení ke službě Azure Database for MySQL používá metodu .new() třídy mysql2::client. Potom volá metodu query()
pro spuštění příkazů UPDATE. Potom volá metodu close()
ukončení připojení před ukončením.
Nahraďte řetězce host
, database
, username
a password
vlastními hodnotami.
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
Odstranění dat
Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu DELETE jazyka SQL.
Kód používá třídu mysql2::client pro připojení k serveru MySQL, spusťte příkaz DELETE a ukončete připojení k serveru.
Nahraďte řetězce host
, database
, username
a password
vlastními hodnotami.
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
Vyčištění prostředků
Pokud chcete vyčistit všechny prostředky použité během tohoto rychlého startu, odstraňte skupinu prostředků pomocí následujícího příkazu:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes