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:
- Criar um servidor de Banco de Dados do Azure para MySQL usando o portal do Azure
- Criar um servidor de Banco de Dados do Azure para MySQL usando a CLI do Azure
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.
- Baixe e instale a versão 2.3 do Ruby.
- Inicie um novo prompt de comando (cmd) no menu Iniciar.
- Altere o diretório para a versão 2.3 do diretório Ruby.
cd c:\Ruby23-x64\bin
- Teste a instalação do Ruby executando o comando
ruby -v
para ver a versão instalada. - Teste a instalação do Gem executando o comando
gem -v
para ver a versão instalada. - 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.
- Faça logon no Portal do Azure.
- No menu à esquerda no portal do Azure, clique em Todos os recursos e pesquise o servidor que você criou (como mydemoserver).
- Clique no nome do servidor.
- 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.
Executar código Ruby
- 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
). - 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
- Digite o comando Ruby seguido pelo nome do arquivo, como
ruby createtable.rb
, para executar o aplicativo. - 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