Megosztás a következőn keresztül:


Rövid útmutató: Adatok csatlakoztatása és lekérdezése a Node.js használatával az Azure Database for MySQL-ben

Figyelemfelhívás

Ez a cikk a CentOS-ra, egy olyan Linux-disztribúcióra hivatkozik, amely közel áll az élettartam (EOL) állapotához. Ennek megfelelően fontolja meg a használatot és a tervezést. További információ: CentOS End Of Life útmutató.

A következőkre vonatkozik: Azure Database for MySQL – Önálló kiszolgáló

Fontos

Az önálló Azure Database for MySQL-kiszolgáló a kivonási útvonalon van. Határozottan javasoljuk, hogy frissítsen rugalmas Azure Database for MySQL-kiszolgálóra. További információ a rugalmas Azure Database for MySQL-kiszolgálóra való migrálásról: Mi történik az önálló Azure Database for MySQL-kiszolgálóval?

Ebben a rövid útmutatóban Node.js használatával csatlakozhat egy Azure Database for MySQL-hez. Ezután SQL-utasításokkal lekérdezheti, beszúrhatja, frissítheti és törölheti az adatbázisban lévő adatokat Mac, Linux és Windows platformokról.

Ez a cikk feltételezi, hogy ismeri a Node.js használatával történő fejlesztést, de még nem használta az Azure Database for MySQL-t.

Előfeltételek

Fontos

Győződjön meg arról, hogy a kiszolgáló tűzfalszabályai az Azure Portal vagy az Azure CLI használatával lettek hozzáadva a csatlakozó IP-címhez

A Node.js és a MySQL-összekötő telepítése

A platformtól függően kövesse a megfelelő szakaszban található utasításokat a Node.js telepítéséhez. Az npm használatával telepítse a mysql2-csomagot és annak függőségeit a projektmappába.

  1. Látogasson el a Node.js letöltési oldalára, majd válassza ki a kívánt Windows-telepítési lehetőséget.

  2. Hozzon létre egy helyi projektmappát, például: nodejsmysql.

  3. Nyissa meg a parancssort, majd módosítsa a könyvtárat a projektmappára, például cd c:\nodejsmysql\

  4. A mysql2 könyvár a projektmappába telepítéséhez futtassa az NPM eszközt.

    cd c:\nodejsmysql\
    "C:\Program Files\nodejs\npm" install mysql2
    "C:\Program Files\nodejs\npm" list
    
  5. Ellenőrizze a telepítést a npm list kimeneti szöveg ellenőrzésével. Új javítások kiadásakor a verziószám változhat.

Kapcsolatadatok lekérése

Kérje le a MySQL-hez készült Azure Database-hez való csatlakozáshoz szükséges kapcsolatadatokat. Szüksége lesz a teljes kiszolgálónévre és a bejelentkezési hitelesítő adatokra.

  1. Jelentkezzen be az Azure Portalra.
  2. Az Azure Portal bal oldali menüjében válassza a Minden erőforrás lehetőséget, majd keresse meg a létrehozott kiszolgálót (például a mydemoservert).
  3. Válassza ki a kiszolgálónevet.
  4. A kiszolgáló Áttekintés paneléről jegyezze fel a Kiszolgálónevet és a Kiszolgáló-rendszergazdai bejelentkezési nevet. Ha elfelejti a jelszavát, ezen a panelen új jelszót is tud kérni. Azure Database for MySQL-kiszolgáló neve

A mintakódok futtatása

  1. Illessze be a JavaScript-kódot az új szövegfájlokba, majd mentse egy projektmappába .js fájlkiterjesztéssel (például C:\nodejsmysql\createtable.js vagy /home/username/nodejsmysql/createtable.js).

  2. Cserélje le hosta kódban a , userés passworddatabase a konfigurációs beállításokat a kiszolgáló és az adatbázis létrehozásakor megadott értékekre.

  3. SSL-tanúsítvány beszerzése: Töltse le az SSL-en keresztüli kommunikációhoz szükséges tanúsítványt az Azure Database for MySQL-kiszolgálóval, https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem és mentse a tanúsítványfájlt a helyi meghajtóra.

    Microsoft Internet Explorer és Microsoft Edge esetén: A letöltés befejezése után nevezze át a tanúsítványt DigiCertGlobalRootCA.crt.pem névre.

    A szuverén felhők kiszolgálóihoz tartozó tanúsítványokra vonatkozó alábbi hivatkozások találhatók: Azure Government, a 21Vianet által üzemeltetett Microsoft Azure és az Azure Germany.

  4. ssl A konfigurációs beállításban cserélje le a ca-cert fájlnevet a helyi fájl elérési útjára.

  5. Nyissa meg a parancssort vagy a bash-felületet, majd módosítsa a könyvtárat a projektmappába cd nodejsmysql.

  6. Az alkalmazás futtatásához adja meg a csomópont parancsot, majd a fájl nevét, például node createtable.js.

  7. Windows rendszeren, ha a csomópontalkalmazás nem szerepel a környezeti változó elérési útján, előfordulhat, hogy a teljes elérési utat kell használnia a csomópontalkalmazás elindításához, például "C:\Program Files\nodejs\node.exe" createtable.js

Csatlakozás, táblák létrehozása és adatok beszúrása

A következő kóddal csatlakozhat, és betöltheti az adatokat a CREATE TABLE és az INSERT INTO SQL-utasításokkal.

A mysql.createConnection() metódus a MySQL-kiszolgálóhoz való csatlakozásra szolgál. A connect() függvény a kiszolgálóval való kapcsolat létesítésére szolgál. A query() függvény az SQL-lekérdezés MySQL-adatbázison való végrehajtására szolgál.

const mysql = require('mysql2');
const fs = require('fs');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_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', 154],
            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.')
    });
};

Adatok beolvasása

A következő kóddal csatlakozhat, és beolvashatja az adatokat a SELECT SQL-utasítással.

A mysql.createConnection() metódus a MySQL-kiszolgálóhoz való csatlakozásra szolgál. A connect() metódus a kiszolgálóval való kapcsolat létesítésére szolgál. A query() metódus az SQL-lekérdezés MySQL-adatbázison való végrehajtására szolgál. Az eredménytömb a lekérdezés eredményeinek tárolására használható.

const mysql = require('mysql2');
const fs = require('fs');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_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.')
    });
};

Adatok frissítése

Az alábbi kóddal csatlakozhat és frissítheti az adatokat egy UPDATE SQL-utasítás használatával.

A mysql.createConnection() metódus a MySQL-kiszolgálóhoz való csatlakozásra szolgál. A connect() metódus a kiszolgálóval való kapcsolat létesítésére szolgál. A query() metódus az SQL-lekérdezés MySQL-adatbázison való végrehajtására szolgál.

const mysql = require('mysql2');
const fs = require('fs');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_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 = ?', [200, '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.')
        });
};

Adatok törlése

Az alábbi kóddal csatlakozhat és törölhet adatokat egy DELETE SQL utasítással.

A mysql.createConnection() metódus a MySQL-kiszolgálóhoz való csatlakozásra szolgál. A connect() metódus a kiszolgálóval való kapcsolat létesítésére szolgál. A query() metódus az SQL-lekérdezés MySQL-adatbázison való végrehajtására szolgál.

const mysql = require('mysql2');
const fs = require('fs');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_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.')
        });
};

Az erőforrások eltávolítása

A rövid útmutató során használt összes erőforrás törléséhez törölje az erőforráscsoportot az alábbi paranccsal:

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

Következő lépések