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


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

Ebben a rövid útmutatóban Node.js használatával csatlakozhat a rugalmas Azure Database for MySQL-kiszolgálóhoz. 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 a rugalmas Azure Database for MySQL-kiszolgálót.

Előfeltételek

Ebben a rövid útmutatóban a következő útmutatók valamelyikében létrehozott erőforrásokat használunk kiindulási pontként:

Fontos

Győződjön meg arról, hogy a kiszolgáló tűzfalszabályai az Azure Database for MySQL tűzfalszabályainak kezelése – Rugalmas kiszolgáló az Azure Portalon vagy az Azure Database for MySQL tűzfalszabályainak kezelése – rugalmas kiszolgáló az Azure CLI használatával lettek hozzáadva

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. Futtassa az NPM eszközt a mysql2-kódtár projektmappába való telepítéséhez.

    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. A verziószám az új javítások megjelenésekor változhat.

Kapcsolatadatok lekérése

Szerezze be a rugalmas Azure Database for MySQL-kiszolgálópéldányhoz való csatlakozáshoz szükséges kapcsolati adatokat. Szüksége van a teljes kiszolgálónévre, és be kell jelentkeznie a hitelesítő adatokkal.

  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.

A kódminták 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 lévő , userés password database konfigurációs beállításokat a rugalmas MySQL-kiszolgáló és -adatbázis létrehozásakor megadott értékekre.
  3. SSL-tanúsítvány beszerzése: Ha titkosított kapcsolatokat szeretne használni az ügyfélalkalmazásaival, le kell töltenie a nyilvános SSL-tanúsítványt , amely az Azure Portal Hálózatkezelés paneljén is elérhető az alábbi képernyőképen látható módon.

Mentse a tanúsítványfájlt a kívánt helyre.

  1. 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. Ez lehetővé teszi, hogy az alkalmazás biztonságosan csatlakozzon az adatbázishoz SSL-en keresztül.
  2. Nyissa meg a parancssort vagy a bash-felületet, majd módosítsa a könyvtárat a projektmappába cd nodejsmysql.
  3. Az alkalmazás futtatásához adja meg a csomópont parancsot, majd a fájl nevét, például node createtable.js.
  4. 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 rugalmas Azure Database for MySQL-kiszolgálópéldányhoz való kapcsolódá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: '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.')
    });
};

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 rugalmas Azure Database for MySQL-kiszolgálópéldányhoz való kapcsolódá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: '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.')
    });
};

Adatok frissítése

Az alábbi kód használatával csatlakozhat és végezheti el az adatok módosítását egy UPDATE SQL-utasítás segítségével.

A mysql.createConnection() metódus a rugalmas Azure Database for MySQL-kiszolgálópéldányhoz való kapcsolódá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: '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.')
        });
};

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 rugalmas Azure Database for MySQL-kiszolgálópéldányhoz való kapcsolódá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: '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.')
        });
};

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