Início Rápido: usar o Node.js para se conectar ao Banco de Dados do Azure para MySQL – Servidor Flexível e consultar dados dele
Neste início rápido, você se conecta ao Servidor Flexível do Banco de Dados do Azure para MySQL usando Node.js. Em seguida, você usa instruções SQL para consultar, inserir, atualizar e excluir dados no banco de dados das plataformas Mac, Linux e Windows.
Este artigo pressupõe que você esteja familiarizado com o desenvolvimento usando Node.js, mas é novo trabalhar com o Servidor Flexível do 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:
- Início Rápido: Criar uma instância do Banco de Dados do Azure para MySQL com o portal do Azure
- Início Rápido: Criar uma instância do Banco de Dados do Azure para MySQL - Servidor Flexível 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 Gerenciar regras de firewall do Banco de Dados do Azure para MySQL - Servidor Flexível usando o portal do Azure ou Gerenciar regras de firewall do Banco de Dados do Azure para MySQL - Servidor Flexível usando a CLI do Azure
Instalar o conector do MySQL e o Node.js
Dependendo de sua plataforma, siga as instruções na seção apropriada para instalar o Node.js. Use o NPM para instalar o pacote mysql2 e suas dependências na pasta do seu projeto.
Acesse a página de downloads do Node. js e selecione a opção do Windows Installer desejada.
Crie uma pasta de projeto local, como
nodejsmysql
.Abra o prompt de comando e, em seguida, altere o diretório na pasta do projeto, como
cd c:\nodejsmysql\
Execute a ferramenta NPM para instalar a biblioteca mysql2 na pasta do projeto.
cd c:\nodejsmysql\ "C:\Program Files\nodejs\npm" install mysql2 "C:\Program Files\nodejs\npm" list
Verifique a instalação conferindo a saída de texto
npm list
. O número da versão pode variar conforme novos patches forem sendo lançados.
Obter informações de conexão
Obtenha as informações de conexão necessárias para se conectar à instância do Servidor Flexível do Banco de Dados do Azure para MySQL. Será necessário obter um nome do servidor totalmente qualificado e as credenciais de entrada.
- Entre no portal do Azure.
- No menu à esquerda no portal do Azure, selecione Todos os recursos e pesquise o servidor que você criou (como mydemoserver).
- Selecione o 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 amostras de código
- Cole o código JavaScript em novos arquivos de texto e salve-os em uma pasta de projeto com extensão de arquivo .js (como C:\nodejsmysql\createtable.js ou /home/username/nodejsmysql/createtable.js).
- Substitua
host
,user
,password
edatabase
as opções de configuração no código pelos valores especificados quando você criou o servidor flexível e o banco de dados do MySQL. - Obtenha um certificado SSL: para usar conexões criptografadas com seus aplicativos cliente, você precisará baixar o certificado SSL público que também está disponível na folha de Rede do portal do Azure, conforme mostrado na captura de tela abaixo.
Salve o arquivo do certificado em seu local de preferência.
- Na opção de configuração
ssl
, substitua o nome de arquivoca-cert
pelo caminho para esse arquivo local. Isso permitirá que os aplicativos se conectem com segurança ao banco de dados por SSL. - Abra o prompt de comando ou shell do Bash e altere o diretório para a pasta do projeto
cd nodejsmysql
. - Para executar o aplicativo, insira o comando de nó seguido pelo nome do arquivo, como
node createtable.js
. - No Windows, se o aplicativo de nó não estiver no caminho da variável de ambiente, talvez você precise usar o caminho completo para iniciar o aplicativo de nó, como
"C:\Program Files\nodejs\node.exe" createtable.js
Conectar-se, criar tabela e inserir dados
Use o código a seguir para se conectar e carregar os dados usando as instruções SQL CREATE TABLE e INSERT INTO.
O método mysql.createConnection() é usado para interface com a instância do Servidor Flexível do Banco de Dados do Azure para MySQL. A função connect() é usada para estabelecer a conexão com o servidor. A função query () é usada para executar a consulta SQL no banco de dados MySQL.
const mysql = require('mysql2');
const fs = require('fs');
var config =
{
host: 'your_server_name.mysql.database.azure.com',
user: 'your_admin_name',
password: 'your_admin_password',
database: 'quickstartdb',
port: 3306,
ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};
const conn = new mysql.createConnection(config);
conn.connect(
function (err) {
if (err) {
console.log("!!! Cannot connect !!! Error:");
throw err;
}
else
{
console.log("Connection established.");
queryDatabase();
}
});
function queryDatabase()
{
conn.query('DROP TABLE IF EXISTS inventory;',
function (err, results, fields) {
if (err) throw err;
console.log('Dropped inventory table if existed.');
}
)
conn.query('CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);',
function (err, results, fields) {
if (err) throw err;
console.log('Created inventory table.');
}
)
conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['banana', 150],
function (err, results, fields) {
if (err) throw err;
else console.log('Inserted ' + results.affectedRows + ' row(s).');
}
)
conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['orange', 250],
function (err, results, fields) {
if (err) throw err;
console.log('Inserted ' + results.affectedRows + ' row(s).');
}
)
conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['apple', 100],
function (err, results, fields) {
if (err) throw err;
console.log('Inserted ' + results.affectedRows + ' row(s).');
}
)
conn.end(function (err) {
if (err) throw err;
else console.log('Done.')
});
};
Ler dados
Use o código a seguir para conectar-se e ler os dados usando uma instrução SQL SELECT.
O método mysql.createConnection() é usado para interface com a instância do Servidor Flexível do Banco de Dados do Azure para MySQL. O método connect() é usado para estabelecer a conexão com o servidor. O método query() é usado para executar a consulta SQL no banco de dados MySQL. A matriz de resultados é usada para armazenar os resultados da consulta.
const mysql = require('mysql2');
const fs = require('fs');
var config =
{
host: 'your_server_name.mysql.database.azure.com',
user: 'your_admin_name',
password: 'your_admin_password',
database: 'quickstartdb',
port: 3306,
ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};
const conn = new mysql.createConnection(config);
conn.connect(
function (err) {
if (err) {
console.log("!!! Cannot connect !!! Error:");
throw err;
}
else {
console.log("Connection established.");
readData();
}
});
function readData(){
conn.query('SELECT * FROM inventory',
function (err, results, fields) {
if (err) throw err;
else console.log('Selected ' + results.length + ' row(s).');
for (i = 0; i < results.length; i++) {
console.log('Row: ' + JSON.stringify(results[i]));
}
console.log('Done.');
})
conn.end(
function (err) {
if (err) throw err;
else console.log('Closing connection.')
});
};
Atualizar dados
Use o código a seguir para conectar-se e atualizar os dados usando uma instrução SQL UPDATE.
O método mysql.createConnection() é usado para interface com a instância do Servidor Flexível do Banco de Dados do Azure para MySQL. O método connect() é usado para estabelecer a conexão com o servidor. O método query() é usado para executar a consulta SQL no banco de dados MySQL.
const mysql = require('mysql2');
const fs = require('fs');
var config =
{
host: 'your_server_name.mysql.database.azure.com',
user: 'your_admin_name',
password: 'your_admin_password',
database: 'quickstartdb',
port: 3306,
ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};
const conn = new mysql.createConnection(config);
conn.connect(
function (err) {
if (err) {
console.log("!!! Cannot connect !!! Error:");
throw err;
}
else {
console.log("Connection established.");
updateData();
}
});
function updateData(){
conn.query('UPDATE inventory SET quantity = ? WHERE name = ?', [75, 'banana'],
function (err, results, fields) {
if (err) throw err;
else console.log('Updated ' + results.affectedRows + ' row(s).');
})
conn.end(
function (err) {
if (err) throw err;
else console.log('Done.')
});
};
Excluir dados
Use o código a seguir para conectar-se e excluir os dados usando uma instrução SQL DELETE.
O método mysql.createConnection() é usado para interface com a instância do Servidor Flexível do Banco de Dados do Azure para MySQL. O método connect() é usado para estabelecer a conexão com o servidor. O método query() é usado para executar a consulta SQL no banco de dados MySQL.
const mysql = require('mysql2');
const fs = require('fs');
var config =
{
host: 'your_server_name.mysql.database.azure.com',
user: 'your_admin_name',
password: 'your_admin_password',
database: 'quickstartdb',
port: 3306,
ssl: {ca: fs.readFileSync("your_path_to_ca_cert_file_DigiCertGlobalRootCA.crt.pem")}
};
const conn = new mysql.createConnection(config);
conn.connect(
function (err) {
if (err) {
console.log("!!! Cannot connect !!! Error:");
throw err;
}
else {
console.log("Connection established.");
deleteData();
}
});
function deleteData(){
conn.query('DELETE FROM inventory WHERE name = ?', ['orange'],
function (err, results, fields) {
if (err) throw err;
else console.log('Deleted ' + results.affectedRows + ' row(s).');
})
conn.end(
function (err) {
if (err) throw err;
else console.log('Done.')
});
};
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
Conteúdo relacionado
- Conectar-se ao Banco de Dados do Azure para MySQL – Servidor Flexível com conexões criptografadas
- Conceitos de conectividade e rede para o Banco de Dados do Azure para MySQL – Servidor Flexível
- Gerenciar regras de firewall para o Banco de Dados do Azure para MySQL – Servidor Flexível usando o portal do Azure
- Crie e gerencie redes virtuais para o Banco de Dados do Azure para MySQL - Servidor Flexível usando o portal do Azure