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ů:

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.

  1. Stáhněte a nainstalujte Ruby verze 2.3.
  2. Z nabídky Start spusťte nový příkazový řádek (cmd).
  3. Změňte adresář na adresář Ruby verze 2.3. cd c:\Ruby23-x64\bin
  4. Otestujte instalaci Ruby spuštěním příkazu ruby -v, který zobrazí nainstalovanou verzi.
  5. Otestujte instalaci nástroje Gem spuštěním příkazu gem -v, který zobrazí nainstalovanou verzi.
  6. 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.

  1. Přihlaste se k webu Azure Portal.
  2. V nabídce vlevo na webu Azure Portal klikněte na Všechny prostředky a vyhledejte vytvořený server (například mydemoserver).
  3. Klikněte na název serveru.
  4. 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. Azure Database for MySQL server name

Spuštění kódu Ruby

  1. 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).
  2. 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.
  3. Potom zadejte příkaz Ruby následovaný názvem souboru, například ruby createtable.rb, a spusťte aplikaci.
  4. 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

Další kroky