Schnellstart: Verwenden von Node.js zum Herstellen von Verbindungen mit Daten und Abfragen von Daten in Azure Database for MySQL

Achtung

Dieser Artikel bezieht sich auf CentOS, eine Linux-Distribution, die sich dem End-of-Life-Status (EOL) nähert. Sie sollten Ihre Nutzung entsprechend planen. Weitere Informationen finden Sie im CentOS End-of-Life-Leitfaden.

GILT FÜR:Azure Database for MySQL – Single Server

Wichtig

Azure Database for MySQL Single Server wird eingestellt. Es wird dringend empfohlen, ein Upgrade auf Azure Database for MySQL Flexible Server auszuführen. Weitere Informationen zum Migrieren zu Azure Database for MySQL Flexible Server finden Sie unter Was geschieht mit Azure Database for MySQL Single Server?

In dieser Schnellstartanleitung stellen Sie unter Verwendung von Node.js eine Verbindung mit einer Azure Database for MySQL-Instanz her. Anschließend können Sie mithilfe von SQL-Anweisungen Daten in der Datenbank auf Mac-, Linux- und Windows-Plattformen abfragen, einfügen, aktualisieren und löschen.

In diesem Artikel wird davon ausgegangen, dass Sie mit der Node.js-Entwicklung vertraut sind, aber noch keine Erfahrung mit Azure Database for MySQL haben.

Voraussetzungen

Wichtig

Sicherstellen, dass der IP-Adresse, über die Sie eine Verbindung herstellen, die Firewallregeln des Servers über das Azure-Portal oder die Azure CLI hinzugefügt wurden

Installation von Node.js und MySQL-Connector

Befolgen Sie zum Installieren von Node.js die plattformabhängigen Anweisungen im entsprechenden Abschnitt. Verwenden Sie npm, um das mysql2-Paket und die Abhängigkeiten in Ihrem Projektordner zu installieren.

  1. Besuchen Sie die Node.js-Seite „Downloads“, und wählen Sie dann die gewünschte Windows Installer-Option aus.

  2. Erstellen Sie einen lokalen Projektordner, z.B. nodejsmysql.

  3. Öffnen Sie die Eingabeaufforderung, und wechseln Sie zum Projektordner, z.B. mit cd c:\nodejsmysql\.

  4. Führen Sie das NPM-Tool aus, um die mysql2-Bibliothek im Projektordner zu installieren.

    cd c:\nodejsmysql\
    "C:\Program Files\nodejs\npm" install mysql2
    "C:\Program Files\nodejs\npm" list
    
  5. Überprüfen Sie die Installation, indem Sie sich den Ausgabetext von npm list ansehen. Die Versionsnummer kann hiervon abweichen, wenn neue Patches veröffentlicht werden.

Abrufen von Verbindungsinformationen

Rufen Sie die Verbindungsinformationen ab, die zum Herstellen einer Verbindung mit der Azure SQL-Datenbank für MySQL erforderlich sind. Sie benötigen den vollqualifizierten Servernamen und die Anmeldeinformationen.

  1. Melden Sie sich beim Azure-Portalan.
  2. Wählen Sie im Azure-Portal im linken Menü Alle Ressourcen aus, und suchen Sie dann nach dem Server, den Sie erstellt haben (z.B. mydemoserver).
  3. Wählen Sie den Servernamen aus.
  4. Notieren Sie sich im Bereich Übersicht des Servers den Servernamen und den Anmeldenamen des Serveradministrators. Wenn Sie Ihr Kennwort vergessen haben, können Sie es in diesem Bereich auch zurücksetzen. Servername für Azure-Datenbank für MySQL

Ausführen der Codebeispiele

  1. Fügen Sie den JavaScript-Code in neue Textdateien ein, und speichern Sie ihn dann in einem Projektordner mit der Dateierweiterung „JS“ (z. B. „C:\nodejsmysql\createtable.js“ oder „/home/username/nodejsmysql/createtable.js“).

  2. Ersetzen Sie im Code die Konfigurationsoptionen host, user, password und database durch die Werte, die Sie beim Erstellen des Servers und der Datenbank angegeben haben.

  3. Abrufen des SSL-Zertifikats: Laden Sie das Zertifikat, das für die SSL-Kommunikation mit Ihrem Azure Database for MySQL-Server erforderlich ist, von https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem herunter, und speichern Sie die Zertifikatdatei auf dem lokalen Laufwerk.

    Für Microsoft Internet Explorer und Microsoft Edge: Benennen Sie das Zertifikat nach dem Download in „BaltimoreCyberTrustRoot.crt.pem“ um.

    Zertifikate für Server in Sovereign Clouds finden Sie unter den folgenden Links: Azure Government, Microsoft Azure, betrieben von 21Vianet und Azure Deutschland.

  4. Ersetzen Sie in der Konfigurationsoption ssl den Dateinamen ca-cert durch den Pfad zu dieser lokalen Datei.

  5. Öffnen Sie die Eingabeaufforderung oder die Bash-Shell, und wechseln Sie zu Ihrem Projektordner: cd nodejsmysql.

  6. Um die Anwendung auszuführen, geben Sie den node-Befehl gefolgt vom Dateinamen ein, z.B. node createtable.js.

  7. Unter Windows müssen Sie unter Umständen den vollständigen Pfad verwenden, um die Node-Anwendung zu starten, z. B. "C:\Program Files\nodejs\node.exe" createtable.js, wenn sich die Node-Anwendung nicht unter dem Pfad der Umgebungsvariablen befindet.

Herstellen der Verbindung, Erstellen der Tabelle und Einfügen von Daten

Verwenden Sie den folgenden Code, um eine Verbindung herzustellen und die Daten zu laden, indem Sie die SQL-Anweisungen CREATE TABLE und INSERT INTO verwenden.

Die mysql.createConnection()-Methode wird verwendet, um die Kommunikation mit dem MySQL-Server zu ermöglichen. Die Funktion connect() wird verwendet, um die Verbindung mit dem Server herzustellen. Die Funktion query() wird verwendet, um die SQL-Abfrage für die MySQL-Datenbank auszuführen.

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

Lesen von Daten

Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs SELECT zu verbinden und zu lesen.

Die mysql.createConnection()-Methode wird verwendet, um die Kommunikation mit dem MySQL-Server zu ermöglichen. Die connect()-Methode wird verwendet, um die Verbindung mit dem Server herzustellen. Die query()-Methode wird verwendet, um die SQL-Abfrage für die MySQL-Datenbank auszuführen. Das results-Array wird für die Ergebnisse der Abfrage verwendet.

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

Aktualisieren von Daten

Verwenden Sie den folgenden Code, um mithilfe einer SQL-Anweisung des Typs UPDATE eine Verbindung zu den Daten herzustellen und diese zu aktualisieren.

Die mysql.createConnection()-Methode wird verwendet, um die Kommunikation mit dem MySQL-Server zu ermöglichen. Die connect()-Methode wird verwendet, um die Verbindung mit dem Server herzustellen. Die query()-Methode wird verwendet, um die SQL-Abfrage für die MySQL-Datenbank auszuführen.

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

Löschen von Daten

Verwenden Sie den folgenden Code, um mithilfe einer SQL-Anweisung des Typs DELETE eine Verbindung zu den Daten herzustellen und diese zu löschen.

Die mysql.createConnection()-Methode wird verwendet, um die Kommunikation mit dem MySQL-Server zu ermöglichen. Die connect()-Methode wird verwendet, um die Verbindung mit dem Server herzustellen. Die query()-Methode wird verwendet, um die SQL-Abfrage für die MySQL-Datenbank auszuführen.

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

Bereinigen von Ressourcen

Löschen Sie die Ressourcengruppe mit dem folgenden Befehl, um alle in dieser Schnellstartanleitung verwendeten Ressourcen zu bereinigen:

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

Nächste Schritte