Sdílet prostřednictvím


Rychlý start: Použití Node.js k připojení a dotazování dat na flexibilním serveru Azure Database for MySQL

V tomto rychlém startu se připojíte k flexibilnímu serveru Azure Database for MySQL pomocí Node.js. Potom použijete příkazy SQL k dotazování, vkládání, aktualizaci a odstraňování dat v databázi z platforem Mac, Linux a Windows.

Tento článek předpokládá, že máte zkušenosti s vývojem pomocí Node.js, ale začínáte pracovat s flexibilním serverem Azure Database for MySQL.

Požadavky

Tento rychlý start jako výchozí bod využívá prostředky vytvořené v některém z těchto průvodců:

Důležité

Ujistěte se, že ip adresa, ze které se připojujete, byla přidána pravidla brány firewall serveru pomocí pravidel brány firewall pro flexibilní server Azure Database for MySQL pomocí webu Azure Portal nebo správy pravidel brány firewall pro flexibilní server Azure Database for MySQL pomocí Azure CLI.

Instalace Node.js a konektoru MySQL

V závislosti na vaší platformě nainstalujte Node.js podle pokynů v příslušné části. Pomocí npm nainstalujte balíček mysql2 a jeho závislosti do složky projektu.

  1. Přejděte na stránku pro stažení Node.js a vyberte požadovanou možnost Instalační služby systému Windows.

  2. Vytvořte místní složku projektu, například nodejsmysql.

  3. Otevřete příkazový řádek a pak změňte adresář do složky projektu, například cd c:\nodejsmysql\

  4. Spuštěním nástroje NPM nainstalujte knihovnu mysql2 do složky projektu.

    cd c:\nodejsmysql\
    "C:\Program Files\nodejs\npm" install mysql2
    "C:\Program Files\nodejs\npm" list
    
  5. Ověřte instalaci kontrolou výstupního npm list textu. Číslo verze se může lišit při vydání nových oprav.

Získání informací o připojení

Získejte informace o připojení potřebné k připojení k instanci flexibilního serveru Azure Database for MySQL. Potřebujete plně kvalifikovaný název serveru a přihlašovací údaje.

  1. Přihlaste se k portálu Azure.
  2. V nabídce vlevo na webu Azure Portal vyberte Všechny prostředky a vyhledejte server, který jste vytvořili (například mydemoserver).
  3. Vyberte název serveru.
  4. Na panelu Přehled serveru si poznamenejte Název serveru a Přihlašovací jméno správce serveru. Pokud zapomenete své heslo, můžete ho na tomto panelu také resetovat.

Spuštění ukázek kódu

  1. Vložte kód JavaScriptu do nových textových souborů a uložte ho do složky projektu s příponou souboru .js (například C:\nodejsmysql\createtable.js nebo /home/username/nodejsmysql/createtable.js).
  2. Nahraďte hostmožnosti , userpassword a database konfigurace v kódu hodnotami, které jste zadali při vytváření flexibilního serveru a databáze MySQL.
  3. Získání certifikátu SSL: Pokud chcete používat šifrovaná připojení s klientskými aplikacemi, budete si muset stáhnout veřejný certifikát SSL, který je dostupný také v okně Sítě na webu Azure Portal, jak je znázorněno na následujícím snímku obrazovky.

Uložte soubor certifikátu do upřednostňovaného umístění.

  1. ssl V konfigurační možnosti nahraďte ca-cert název souboru cestou k tomuto místnímu souboru. Aplikace se tak bude moct bezpečně připojit k databázi přes PROTOKOL SSL.
  2. Otevřete příkazový řádek nebo prostředí Bash a pak změňte adresář do složky cd nodejsmysqlprojektu .
  3. Pokud chcete aplikaci spustit, zadejte příkaz uzlu následovaný názvem souboru, například node createtable.js.
  4. Pokud aplikace uzlu ve Windows není ve vaší cestě proměnné prostředí, možná budete muset ke spuštění aplikace uzlu použít úplnou cestu, například "C:\Program Files\nodejs\node.exe" createtable.js

Připojení, vytvoření tabulky a vložení dat

Pomocí následujícího kódu se připojte a nahrajte data s využitím příkazů CREATE TABLE a INSERT INTO jazyka SQL.

Metoda mysql.createConnection() se používá k rozhraní s instancí flexibilního serveru Azure Database for MySQL. Funkce connect() se používá k navázání připojení k serveru. Funkce query() se používá k provedení příkazu jazyka SQL na databázi 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.')
    });
};

Čtení dat

Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu SELECT jazyka SQL.

Metoda mysql.createConnection() se používá k rozhraní s instancí flexibilního serveru Azure Database for MySQL. Metoda connect() se používá k navázání připojení k serveru. Metoda query() se používá k provedení příkazu jazyka SQL na databázi MySQL. Pole results slouží k ukládání výsledků dotazu.

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.')
    });
};

Aktualizace dat

Pomocí následujícího kódu se připojte a aktualizujte data s využitím příkazu UPDATE jazyka SQL.

Metoda mysql.createConnection() se používá k rozhraní s instancí flexibilního serveru Azure Database for MySQL. Metoda connect() se používá k navázání připojení k serveru. Metoda query() se používá k provedení příkazu jazyka SQL na databázi 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.')
        });
};

Odstranění dat

Pomocí následujícího kódu se připojte a odstraňte data pomocí příkazu DELETE SQL.

Metoda mysql.createConnection() se používá k rozhraní s instancí flexibilního serveru Azure Database for MySQL. Metoda connect() se používá k navázání připojení k serveru. Metoda query() se používá k provedení příkazu jazyka SQL na databázi 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.')
        });
};

Vyčištění prostředků

Pokud chcete vyčistit všechny prostředky použité během tohoto rychlého startu, odstraňte skupinu prostředků pomocí následujícího příkazu:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes