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
APLICA-SE A: Banco de Dados do Azure para MySQL – Servidor flexível
Neste início rápido, será possível se conectar a um servidor flexível do Banco de Dados do Azure para MySQL usando o 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 acostumado a desenvolver usando Node.js, mas não tem experiência em 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:
- Criar uma instância de servidor flexível do Banco de Dados do Azure para MySQL usando o portal do Azure
- Criar uma instância de servidor flexível do 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 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 de versão pode variar quando novos patches são publicados.
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 as opções de configuração
host
,user
,password
edatabase
no código pelos valores que você especificou quando criou o servidor flexível MySQL e o banco de dados. - 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 de variável do seu ambiente, você precisará usar o caminho completo para iniciar o aplicativo de nó, como, por exemplo,
"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 se conectar à 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 se conectar à 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 se conectar à 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 se conectar à 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
Próximas etapas
- Conectividade criptografada usando o TLS 1.2 (Transport Layer Security) no servidor flexível do Banco de Dados do Azure para MySQL.
- Saiba mais sobre a Rede no servidor flexível do Banco de Dados do Azure para MySQL.
- Criar e gerenciar regras de firewall do servidor flexível do Banco de Dados do Azure para MySQL usando o portal do Azure.
- Crie e gerencie uma rede virtual do servidor flexível do Banco de Dados do Azure para MySQL usando o portal do Azure.