Guia de início rápido: use Ruby para conectar e consultar dados no Banco de Dados do Azure para MySQL

APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Único

Importante

O servidor único do Banco de Dados do Azure para MySQL está no caminho de desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para o servidor flexível MySQL. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para servidor flexível MySQL, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único MySQL?

Este guia de início rápido demonstra como se conectar a um Banco de Dados do Azure para MySQL usando um aplicativo Ruby e a joia mysql2 das plataformas Windows, Linux e Mac. Explica como utilizar as instruções SQL para consultar, inserir, atualizar e eliminar dados da base de dados. Este tópico pressupõe que está familiarizado com a programação com Ruby e que nunca trabalhou com a Base de Dados do Azure para MySQL.

Pré-requisitos

Este guia de início rápido utiliza os recursos criados em qualquer um desTes guias como ponto de partida:

Importante

Verifique se o endereço IP do qual você está se conectando foi adicionado às regras de firewall do servidor usando o portal do Azure ou a CLI do Azure

Instalar o Ruby

Instale Ruby, Gem e a biblioteca de MySQL2 no seu computador.

  1. Transfira e instale a versão 2.3 do Ruby.
  2. Inicie uma nova linha de comandos (cmd) a partir do menu Iniciar.
  3. Altere o diretório para o diretório do Ruby para a versão 2.3. cd c:\Ruby23-x64\bin
  4. Teste a instalação do Ruby ao executar o comando ruby -v para ver a versão instalada.
  5. Teste a instalação do Gem ao executar o comando gem -v para ver a versão instalada.
  6. Crie o módulo Mysql2 para Ruby com Gem ao executar o comando gem install mysql2.

Obter informações da ligação

Obtenha as informações de ligação necessárias para se ligar à Base de Dados do Azure para MySQL. Necessita do nome do servidor e das credenciais de início de sessão totalmente qualificados.

  1. Inicie sessão no portal do Azure.
  2. No menu esquerdo do portal do Azure, clique em Todos os recursos e, em seguida, procure o servidor que acabou de criar, (por exemplo, mydemoserver).
  3. Clique no nome do servidor.
  4. No painel Descrição geral do servidor, tome nota do Nome do servidor e do Nome de início de sessão de administrador do servidor. Caso se esqueça da sua palavra-passe, também pode repor a palavra-passe neste painel. Azure Database for MySQL server name

Executar código Ruby

  1. Cole o código Ruby das secções abaixo em ficheiros de texto e guarde-os numa pasta de projeto com a extensão de ficheiro .rb, como, (por exemplo, C:\rubymysql\createtable.rb ou /home/username/rubymysql/createtable.rb).
  2. Para executar o código, inicie a linha de comandos ou a shell de Bash. Altere o diretório para a pasta do projeto, cd rubymysql.
  3. Em seguida, escreva o comando do Ruby seguido do nome do ficheiro, como ruby createtable.rb, para executar a aplicação.
  4. No SO Windows, se a aplicação Ruby não estiver na variável de ambiente do caminho, poderá ter de utilizar o caminho completo para iniciá-la, como, por exemplo, "c:\Ruby23-x64\bin\ruby.exe" createtable.rb

Ligar-se e criar uma tabela

Utilize o código seguinte para ligar e criar uma tabela com a instrução SQL CREATE TABLE, seguida das instruções SQL INSERT INTO para adicionar linhas à tabela.

O código usa uma classe mysql2::client para se conectar ao servidor MySQL. Em seguida, ele chama o método query() para executar os comandos DROP, CREATE TABLE e INSERT INTO. Finalmente, chame o close() para fechar a conexão antes de encerrar.

Substitua as cadeias host, database, username e password pelos seus próprios valores.

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

Ler dados

Utilize o código seguinte para se ligar e ler dados com uma instrução SQL SELECT.

O código usa uma classe mysql2::client para se conectar ao Banco de Dados do Azure para MySQL com new()o método. Em seguida, ele chama o método query() para executar os comandos SELECT. Em seguida, ele chama o método close() para fechar a conexão antes de encerrar.

Substitua as cadeias host, database, username e password pelos seus próprios valores.

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

Atualizar dados

Utilize o código seguinte para se ligar e atualizar os dados com uma instrução SQL UPDATE.

O código utiliza um método mysql2::client class .new() para ligar à Base de Dados do Azure para MySQL. Em seguida, ele chama o método query() para executar os comandos UPDATE. Em seguida, ele chama o método close() para fechar a conexão antes de encerrar.

Substitua as cadeias host, database, username e password pelos seus próprios valores.

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

Eliminar dados

Utilize o código seguinte para se ligar e ler os dados com a instrução SQL DELETE.

O código usa uma classe mysql2::client para se conectar ao servidor MySQL, executar o comando DELETE e, em seguida, fechar a conexão com o servidor.

Substitua as cadeias host, database, username e password pelos seus próprios valores.

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

Clean up resources (Limpar recursos)

Para limpar todos os recursos usados durante este início rápido, exclua o grupo de recursos usando o seguinte comando:

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

Próximos passos