Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten ansluter du till Azure Database for MySQL – flexibel server med hjälp av Node.js. Sedan använder du SQL-instruktioner för att fråga, infoga, uppdatera och ta bort data i databasen från Mac-, Linux- och Windows-plattformar.
Den här artikeln förutsätter att du är bekant med att utveckla med hjälp av Node.js, men du är nybörjare på att arbeta med Azure Database for MySQL – flexibel server.
Förutsättningar
I den här snabbstarten används de resurser som skapades i någon av följande guider som utgångspunkt:
- Snabbstart: Skapa en instans av Azure Database for MySQL med Azure Portal
 - Snabbstart: Skapa en instans av Azure Database for MySQL – flexibel server med hjälp av Azure CLI
 
Viktigt!
Kontrollera att IP-adressen som du ansluter från har lagts till serverns brandväggsregler med hjälp av Hantera brandväggsregler för Azure Database for MySQL – flexibel server med hjälp av Azure Portal eller Hantera brandväggsregler för Azure Database for MySQL – flexibel server med 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 mysql2-paketet och dess beroenden i projektmappen.
Besök hämtningssidan för Node.js och välj sedan önskat alternativ för Windows installeringsverktyg.
Skapa en lokal projektmapp som till exempel
nodejsmysql.Öppna kommandotolken och ändra sedan katalogen till projektmappen, till exempel
cd c:\nodejsmysql\Kör NPM-verktyget för att installera mysql2-biblioteket i projektmappen.
cd c:\nodejsmysql\ "C:\Program Files\nodejs\npm" install mysql2 "C:\Program Files\nodejs\npm" listVerifiera installationen genom att kontrollera
npm list-utdatatexten. Versionsnumret kan variera när nya korrigeringar släpps.
Hämta anslutningsinformation
Hämta den anslutningsinformation som behövs för att ansluta till Azure Database for MySQL – flexibel serverinstans. Du behöver det fullständigt kvalificerade servernamnet och inloggningsuppgifterna.
- Logga in på Azure-portalen.
 - 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).
 - Välj servernamnet.
 - 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.
 
Kör kodexemplen
- Klistra in JavaScript-koden i nya textfiler och spara den sedan i en projektmapp med filnamnstillägget .js (till exempel C:\nodejsmysql\createtable.js eller /home/username/nodejsmysql/createtable.js).
 - Ersätt 
hostalternativen ,passworduserochdatabaseconfig i koden med de värden som du angav när du skapade MySQL – flexibel server och databas. - Hämta SSL-certifikat: Om du vill använda krypterade anslutningar med dina klientprogram måste du ladda ned det offentliga SSL-certifikatet som också är tillgängligt i bladet Azure Portal Nätverk enligt skärmbilden nedan.
 
Spara certifikatfilen på önskad plats.
- I konfigurationsalternativet 
sslersätter duca-certfilnamnet med sökvägen till den här lokala filen. På så sätt kan programmet ansluta säkert till databasen via SSL. - Öppna kommandotolken eller bash-gränssnittet och ändra sedan katalogen till projektmappen 
cd nodejsmysql. - Om du vill köra programmet anger du nodkommandot följt av filnamnet, till exempel 
node createtable.js. - Om nodprogrammet inte finns i din miljövariabelsökväg i Windows 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 för att interagera med Azure Database for MySQL – flexibel serverinstans. 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.
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.')
    });
};
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 för att interagera med Azure Database for MySQL – flexibel serverinstans. 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.
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.')
    });
};
Uppdatera data
Använd följande kod för att ansluta och uppdatera data med en UPDATE-SQL-instruktion.
Metoden mysql.createConnection() används för att interagera med Azure Database for MySQL – flexibel serverinstans. 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.
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.')
        });
};
Ta bort data
Använd följande kod för att ansluta och ta bort data med hjälp av en DELETE SQL-instruktion .
Metoden mysql.createConnection() används för att interagera med Azure Database for MySQL – flexibel serverinstans. 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.
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.')
        });
};
Rensa resurser
Om du vill rensa alla resurser som används under den här snabbstarten tar du bort resursgruppen med följande kommando:
az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes
Relaterat innehåll
- Anslut till Azure Database for MySQL – flexibel server med krypterade anslutningar
 - Anslutnings- och nätverksbegrepp för Azure Database for MySQL – flexibel server
 - Hantera brandväggsregler för Azure Database for MySQL – flexibel server med hjälp av Azure Portal
 - Skapa och hantera virtuella nätverk för Azure Database for MySQL – flexibel server med hjälp av Azure Portal