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:
- Criar uma Base de Dados do Azure para o servidor MySQL com o portal do Azure
- Criar uma Base de Dados do Azure para o servidor MySQL com 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 o Ruby
Instale Ruby, Gem e a biblioteca de MySQL2 no seu computador.
- Transfira e instale a versão 2.3 do Ruby.
- Inicie uma nova linha de comandos (cmd) a partir do menu Iniciar.
- Altere o diretório para o diretório do Ruby para a versão 2.3.
cd c:\Ruby23-x64\bin
- Teste a instalação do Ruby ao executar o comando
ruby -v
para ver a versão instalada. - Teste a instalação do Gem ao executar o comando
gem -v
para ver a versão instalada. - 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.
- Inicie sessão no portal do Azure.
- 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).
- Clique no nome do servidor.
- 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.
Executar código Ruby
- 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
). - 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
. - Em seguida, escreva o comando do Ruby seguido do nome do ficheiro, como
ruby createtable.rb
, para executar a aplicação. - 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