Snabbstart: Använd Node.js för att ansluta och fråga efter data i Azure Database for MySQL

GÄLLER FÖR: Azure Database for MySQL – enskild server

I den här snabbstarten ansluter du till en Azure Database for MySQL med hjälp av Node.js. Sedan använder du SQL-uttryck för att fråga, infoga, uppdatera och ta bort data i databasen från Mac, Ubuntu Linux och Windows plattformar.

Det här avsnittet förutsätter att du är van att utveckla med Node.js, men du är nybörjare på att arbeta med Azure Database for MySQL.

Förutsättningar

Viktigt

Kontrollera att IP-adressen som du ansluter från har lagts till serverns brandväggsregler med hjälp av Azure Portal eller Azure CLI

Installera Node.js och MySQL Connector

Beroende på din plattform följer du anvisningarna i lämpligt avsnitt för att installera Node.js. Använd npm för att installera mysql-paketet och dess beroenden i projektmappen.

Windows

  1. Besök hämtningssidan för Node.js och välj sedan önskat alternativ för Windows installeringsverktyg.

  2. Skapa en lokal projektmapp som till exempel nodejsmysql.

  3. Öppna kommandotolken och ändra sedan katalogen till projektmappen, till exempel cd c:\nodejsmysql\

  4. Kör NPM-verktyget för att installera mysql-biblioteket i projektmappen.

    cd c:\nodejsmysql\
    "C:\Program Files\nodejs\npm" install mysql
    "C:\Program Files\nodejs\npm" list
    
  5. Verifiera installationen genom att kontrollera npm list-utdatatexten. Versionsnumret kan variera när nya korrigeringsfiler blir tillgängliga.

Linux (Ubuntu)

  1. Ange följande kommandon för att installera npm och Node.js, en användarvänlig pakethanterare för Node.js.

     # Using Ubuntu
     curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
     sudo apt-get install -y nodejs
    
     # Using Debian, as root
     curl -sL https://deb.nodesource.com/setup_14.x | bash -
     apt-get install -y nodejs
    
  2. Kör följande kommandon för att skapa projektmappen mysqlnodejs och installera mysql-paketet i den mappen.

    mkdir nodejsmysql
    cd nodejsmysql
    npm install --save mysql
    npm list
    
  3. Verifiera installationen genom att kontrollera npm-listans utdatatext. Versionsnumret kan variera när nya korrigeringsfiler blir tillgängliga.

macOS

  1. Gå till Node.js hämtningssidan ochvälj sedan ditt macOS-installationsprogram.

  2. Kör följande kommandon för att skapa projektmappen mysqlnodejs och installera mysql-paketet i den mappen.

    mkdir nodejsmysql
    cd nodejsmysql
    npm install --save mysql
    npm list
    
  3. Verifiera installationen genom att kontrollera npm list-utdatatexten. Versionsnumret kan variera när nya korrigeringsfiler blir tillgängliga.

Hämta anslutningsinformation

Skaffa den information som du behöver för att ansluta till Azure Database för MySQL. Du behöver det fullständiga servernamnet och inloggningsuppgifter.

  1. Logga in på Azure Portal.
  2. På den vänstra menyn i Azure Portal väljer du Alla resurser och söker sedan efter den server som du har skapat (till exempel mydemoserver).
  3. Välj servernamnet.
  4. På serverpanelen Översikt antecknar du Servernamn och Inloggningsnamn för serveradministratören. Om du glömmer lösenordet kan du även återställa det på den här panelen. Azure Database för MySQL-servernamn

Kör JavaScript-kod i Node.js

  1. Klistra in JavaScript-koden i en textfil och spara sedan filen till en projektmapp med filnamnstillägget .js (till exempel C:\nodejsmysql\createtable.js eller /home/username/nodejsmysql/createtable.js).
  2. Öppna kommandotolken eller bash-gränssnittet och ändra sedan katalogen till projektmappen cd nodejsmysql .
  3. Kör programmet genom att ange nodkommandot följt av filnamnet, till exempel node createtable.js .
  4. I Windows, om node-programmet inte finns på sökvägen för miljövariabeln, kan du behöva använda den fullständiga sökvägen för att starta nodprogrammet, till exempel "C:\Program Files\nodejs\node.exe" createtable.js

Ansluta, skapa tabell och infoga data

Använd följande kod för att ansluta och läsa in data med hjälp av SQL-instruktionerna CREATE TABLE och INSERT INTO.

Metoden mysql.createConnection() används som gränssnitt med MySQL-servern. Funktionen connect() används för att etablera anslutningen till servern. Funktionen query() används för att köra SQL-frågor mot en MySQL-databas.

Ersätt parametrarna host, user, password och database med de värden som du angav när du skapade servern och databasen.

const mysql = require('mysql');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: true
};

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

Läsa data

Använd följande kod för att ansluta och läsa data med en SELECT-SQL-instruktion.

Metoden mysql.createConnection() används som gränssnitt med MySQL-servern. Metoden connect() används för att etablera anslutningen till servern. Metoden query() används för att köra SQL-frågor mot en MySQL-databas. Resultatmatrisen används för resultat från frågan.

Ersätt parametrarna host, user, password och database med de värden som du angav när du skapade servern och databasen.

const mysql = require('mysql');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: true
};

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

Uppdatera data

Använd följande kod för att ansluta och läsa data med SQL-instruktionen UPDATE.

Metoden mysql.createConnection() används som gränssnitt med MySQL-servern. Metoden connect() används för att etablera anslutningen till servern. Metoden query() används för att köra SQL-frågor mot en MySQL-databas.

Ersätt parametrarna host, user, password och database med de värden som du angav när du skapade servern och databasen.

const mysql = require('mysql');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: true
};

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

Ta bort data

Använd följande kod för att ansluta och läsa data med en DELETE-SQL-instruktion.

Metoden mysql.createConnection() används som gränssnitt med MySQL-servern. Metoden connect() används för att etablera anslutningen till servern. Metoden query() används för att köra SQL-frågor mot en MySQL-databas.

Ersätt parametrarna host, user, password och database med de värden som du angav när du skapade servern och databasen.

const mysql = require('mysql');

var config =
{
    host: 'mydemoserver.mysql.database.azure.com',
    user: 'myadmin@mydemoserver',
    password: 'your_password',
    database: 'quickstartdb',
    port: 3306,
    ssl: true
};

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

Rensa resurser

Om du vill rensa alla resurser som används i den här snabbstarten tar du bort resursgruppen med följande kommando:

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

Nästa steg