Início Rápido: Usar 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 Banco de Dados do Azure para servidor único 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 o servidor flexível MySQL, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único MySQL?

Este início rápido demonstra como se conectar a um Banco de Dados do Azure para MySQL usando um aplicativo Ruby e a gem mysql2 nas plataformas Windows, Linux e Mac. Ele mostra como usar instruções SQL para consultar, inserir, atualizar e excluir dados no banco de dados. Este tópico pressupõe que você está familiarizado com o desenvolvimento usando Ruby e começou recentemente a trabalhar com o Banco de Dados do Azure para MySQL.

Pré-requisitos

Este guia de início rápido usa os recursos criados em 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 Ruby

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

  1. Baixe e instale a versão 2.3 do Ruby.
  2. Inicie um novo prompt de comando (cmd) no menu Iniciar.
  3. Altere o diretório para a versão 2.3 do diretório Ruby. cd c:\Ruby23-x64\bin
  4. Teste a instalação do Ruby executando o comando ruby -v para ver a versão instalada.
  5. Teste a instalação do Gem executando o comando gem -v para ver a versão instalada.
  6. Compile o módulo Mysql2 para Ruby usando o Gem com a execução do comando gem install mysql2.

Obter informações de conexão

Obtenha as informações de conexão necessárias para se conectar ao Banco de Dados do Azure para MySQL. Você precisa das credenciais de logon e do nome do servidor totalmente qualificado.

  1. Faça logon no Portal do Azure.
  2. No menu à esquerda no portal do Azure, clique em Todos os recursos e pesquise o servidor que você criou (como mydemoserver).
  3. Clique no nome do servidor.
  4. No painel Visão Geral do servidor, anote o Nome do servidor e Nome de logon do administrador do servidor. Se você esquecer sua senha, também poderá redefini-la nesse painel. Azure Database for MySQL server name

Executar código Ruby

  1. Cole o código Ruby das seções abaixo em arquivos de texto e salve-os em uma pasta de projeto com a extensão de arquivo .rb (como C:\rubymysql\createtable.rb ou /home/username/rubymysql/createtable.rb).
  2. Para executar o código, inicie o prompt de comando ou o shell Bash. Altere o diretório para a pasta do seu projeto cd rubymysql
  3. Digite o comando Ruby seguido pelo nome do arquivo, como ruby createtable.rb, para executar o aplicativo.
  4. No sistema operacional Windows, se o aplicativo Ruby não estiver no seu caminho de variável de ambiente, você precisará usar o caminho completo para iniciar o aplicativo de nó, como "c:\Ruby23-x64\bin\ruby.exe" createtable.rb

Conectar-se e criar uma tabela

Use o código a seguir para se conectar e criar uma tabela usando a instrução SQL CREATE TABLE, seguida por 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. Por fim, chame o close() para fechar a conexão antes de encerrar.

Substitua as cadeias de caracteres 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

Use o código a seguir para conectar-se e ler os dados usando uma instrução SQL SELECT.

O código usa uma classe mysql2::client para se conectar ao Banco de Dados do Azure para MySQL usando o new()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 de caracteres 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

Use o código a seguir para conectar-se e atualizar os dados usando uma instrução SQL UPDATE.

O código usa um método .new() de classe mysql2::client para se conectar ao banco 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 de caracteres 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

Excluir dados

Use o código a seguir para conectar-se e ler os dados usando uma instrução SQL DELETE.

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

Substitua as cadeias de caracteres 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

Limpar os recursos

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

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

Próximas etapas