Guia de início rápido: usar o Node.js para conectar e consultar dados no Banco de Dados do Azure para MySQL - Servidor Flexível
APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Flexível
Neste início rápido, você se conecta ao Banco de Dados do Azure para servidor flexível 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 o Node.js, mas é novo no trabalho com o Banco de Dados do Azure para o servidor flexível 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 instância de servidor flexível do Banco de Dados do Azure para MySQL usando o portal do Azure
- Criar um Banco de Dados do Azure para instância de servidor flexível do 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 Node.js e o conector de MySQL
Dependendo da sua plataforma, siga as instruções na seção apropriada para instalá Node.js. Use npm para instalar o pacote mysql2 e suas dependências na pasta do seu projeto.
Visite a página de transferências do Node. js e, em seguida, selecione a opção de instalador Windows que pretende.
Crie uma pasta de projeto local , como
nodejsmysql
.Abra o prompt de comando e, em seguida, altere o diretório para a 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 verificando o texto de
npm list
saída. O número da versão pode variar à medida que forem sendo lançados patches novos.
Obter informações da ligação
Obtenha as informações de conexão necessárias para se conectar à instância de servidor flexível do Banco de Dados do Azure para MySQL. Você precisa do nome do servidor totalmente qualificado e das credenciais de login.
- Inicie sessão no portal do Azure.
- No menu à esquerda no portal do Azure, selecione Todos os recursos e procure o servidor que você criou (como mydemoserver).
- Selecione o 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 os exemplos de código
- Cole o código JavaScript em novos arquivos de texto e salve-o em uma pasta de projeto com .js de extensão de arquivo (como C:\nodejsmysql\createtable.js ou /home/username/nodejsmysql/createtable.js).
- Substitua
host
,user
password
edatabase
opções de configuração no código com os valores que você especificou quando criou o servidor flexível MySQL e banco de dados. - Obter 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 Rede do portal do Azure, conforme mostrado na captura de tela abaixo.
Salve o arquivo de certificado no local de sua preferência.
ssl
Na opção config, substitua o nome doca-cert
arquivo pelo caminho para esse arquivo local. Isso permitirá que o aplicativo se conecte com segurança ao banco de dados por SSL.- Abra o prompt de comando ou shell bash e, em seguida, altere o diretório para a pasta
cd nodejsmysql
do projeto . - Para executar o aplicativo, digite o comando node 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 seja necessário usar o caminho completo para iniciar o aplicativo de nó, como
"C:\Program Files\nodejs\node.exe" createtable.js
Ligar, criar tabela e inserir dados
Utilize o seguinte código para se ligar e carregar os dados com as instruções SQL CREATE TABLE e INSERT INTO.
O método mysql.createConnection() é usado para fazer interface com o Banco de Dados do Azure para instância de servidor flexível do MySQL. A função connect() é utilizada para estabelecer a ligação ao servidor. A função query() é utilizada para executar a consulta SQL na base 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
Utilize o código seguinte para se ligar e ler dados com uma instrução SQL SELECT.
O método mysql.createConnection() é usado para fazer interface com o Banco de Dados do Azure para instância de servidor flexível do MySQL. O método connect() é utilizado para estabelecer a ligação ao servidor. O método query() é utilizado para executar a consulta SQL na base de dados MySQL. A matriz de resultados é utilizada 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
Utilize o código seguinte para se ligar e atualizar os dados com uma instrução SQL UPDATE.
O método mysql.createConnection() é usado para fazer interface com o Banco de Dados do Azure para instância de servidor flexível do MySQL. O método connect() é utilizado para estabelecer a ligação ao servidor. O método query() é utilizado para executar a consulta SQL na base 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.')
});
};
Eliminar dados
Use o código a seguir para conectar e excluir dados usando uma instrução DELETE SQL.
O método mysql.createConnection() é usado para fazer interface com o Banco de Dados do Azure para instância de servidor flexível do MySQL. O método connect() é utilizado para estabelecer a ligação ao servidor. O método query() é utilizado para executar a consulta SQL na base 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.')
});
};
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
Próximos passos
- Conectividade criptografada usando Transport Layer Security (TLS 1.2) no Banco de Dados do Azure para servidor flexível MySQL.
- Saiba mais sobre Rede no Banco de Dados do Azure para servidor flexível MySQL.
- Crie e gerencie regras flexíveis de firewall de servidor do Banco de Dados do Azure para MySQL usando o portal do Azure.
- Crie e gerencie um Banco de Dados do Azure para rede virtual de servidor flexível MySQL usando o portal do Azure.