Hızlı başlangıç: MySQL için Azure veritabanı 'na bağlanmak ve veri sorgulamak için Node.js kullanma

AŞAĞıDAKILER IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Tek Sunucu

Bu hızlı başlangıçta Node.js kullanarak MySQL için Azure veritabanı 'na bağlanırsınız. daha sonra SQL deyimlerini kullanarak Mac, Ubuntu Linux ve Windows platformlarındaki veritabanındaki verileri sorgulama, ekleme, güncelleştirme ve silme.

Bu konuda, Node.js kullanarak geliştirmeyle ilgili bilgi sahibi olduğunuz ve MySQL için Azure veritabanı ile çalışmaya yeni başladığınızı varsaymaktadır.

Önkoşullar

Önemli

Bağlanmakta olduğunuz IP adresinin Azure Portal veya Azure CLI kullanarak sunucunun güvenlik duvarı kurallarını eklendiğinden emin olun

Node.js’yi ve MySQL bağlayıcısını yükleme

Platformunuza bağlı olarak, Node.jsyüklemek için uygun bölümdeki yönergeleri izleyin. MySQL paketini ve bağımlılıklarını proje klasörünüze yüklemek için NPM kullanın.

Windows

  1. Node.js indirme sayfasını ziyaret edin ve istediğiniz Windows yükleyici seçeneğini belirleyin.

  2. nodejsmysql gibi yerel bir proje klasörü oluşturun.

  3. Komut istemi ' ni açın ve ardından dizini proje klasörüne değiştirin, örneğin cd c:\nodejsmysql\

  4. MySQL kitaplığını proje klasörüne yüklemek için NPM aracını çalıştırın.

    cd c:\nodejsmysql\
    "C:\Program Files\nodejs\npm" install mysql
    "C:\Program Files\nodejs\npm" list
    
  5. Çıkış metnini denetleyerek yüklemeyi doğrulayın npm list . Yeni yamalar yayımlandıkça sürüm numarası değişebilir.

Linux (Ubuntu)

  1. Node.js’yi ve Node.js’nin paket yöneticisi olan npm’yi yüklemek için aşağıdaki komutları çalıştırın.

     # 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. Bir proje klasörü oluşturmak mysqlnodejs ve MySQL paketini bu klasöre yüklemek için aşağıdaki komutları çalıştırın.

    mkdir nodejsmysql
    cd nodejsmysql
    npm install --save mysql
    npm list
    
  3. NPM listesi çıkış metnini denetleyerek yüklemeyi doğrulayın. Yeni yamalar yayımlandıkça sürüm numarası değişebilir.

Mac OS

  1. Node.js İndirmeleri sayfasınıziyaret edin ve ardından MacOS yükleyicinizi seçin.

  2. Bir proje klasörü oluşturmak mysqlnodejs ve MySQL paketini bu klasöre yüklemek için aşağıdaki komutları çalıştırın.

    mkdir nodejsmysql
    cd nodejsmysql
    npm install --save mysql
    npm list
    
  3. Çıkış metnini denetleyerek yüklemeyi doğrulayın npm list . Yeni yamalar yayımlandıkça sürüm numarası değişebilir.

Bağlantı bilgilerini alma

MySQL için Azure Veritabanı'na bağlanmak üzere gereken bağlantı bilgilerini alın. Tam sunucu adına ve oturum açma kimlik bilgilerine ihtiyacınız vardır.

  1. Azure Portaloturum açın.
  2. Azure Portal sol taraftaki menüden tüm kaynaklar' ı seçin ve oluşturduğunuz sunucuyu (örneğin, demosunucum) arayın.
  3. Sunucu adını seçin.
  4. Sunucunun Genel Bakış panelinden Sunucu adı ile Sunucu yöneticisi oturum açma adı’nı not alın. Parolanızı unutursanız, bu panelden parolayı da sıfırlayabilirsiniz. MySQL için Azure Veritabanı sunucu adı

Node.js’de JavaScript kodunu çalıştırma

  1. JavaScript kodunu metin dosyalarına yapıştırın ve dosyaları .js uzantısıyla bir proje klasörüne kaydedin (örneğin, C:\nodejsmysql\createtable.js veya /home/username/nodejsmysql/createtable.js).
  2. Komut istemi veya bash kabuğunu açın ve ardından dizini proje klasörünüze değiştirin cd nodejsmysql .
  3. Uygulamayı çalıştırmak için, Node komutunu ve ardından dosya adını girin (örneğin,) node createtable.js .
  4. Windows’da düğüm uygulamanız ortam değişkeni yolunuzda değilse düğüm uygulamasını başlatmak için tam yolu kullanmanız gerekebilir; örneğin, "C:\Program Files\nodejs\node.exe" createtable.js

Bağlanma, tablo oluşturma ve veri ekleme

Bağlanıp CREATE TABLE ve INSERT INTO SQL deyimlerini kullanarak verileri yüklemek için aşağıdaki kodu kullanın.

MySQL sunucusuyla arabirim oluşturmak için mysql.createConnection() yöntemi, kullanılır. Sunucuyla bağlantı kurmak için connect() işlevi kullanılır. MySQL veritabanına karşı SQL sorgusunu yürütmek için query() işlevi kullanılır.

host, user, password ve database parametrelerini, sunucu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.

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

Verileri okuma

Bağlanmak ve SELECT SQL deyimi kullanarak verileri okumak için aşağıdaki kodu kullanın.

MySQL sunucusuyla arabirim oluşturmak için mysql.createConnection() yöntemi, kullanılır. Sunucuyla bağlantı kurmak için connect() yöntemi kullanılır. MySQL veritabanına karşı SQL sorgusunu yürütmek için query() yöntemi kullanılır. Sorgunun sonuçlarını tutmak için sonuç dizisi kullanılır.

host, user, password ve database parametrelerini, sunucu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.

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

Verileri güncelleştirme

Bağlanmak ve UPDATE SQL deyimi kullanarak verileri okumak için aşağıdaki kodu kullanın.

MySQL sunucusuyla arabirim oluşturmak için mysql.createConnection() yöntemi, kullanılır. Sunucuyla bağlantı kurmak için connect() yöntemi kullanılır. MySQL veritabanına karşı SQL sorgusunu yürütmek için query() yöntemi kullanılır.

host, user, password ve database parametrelerini, sunucu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.

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

Verileri silme

Bağlanmak ve DELETE SQL deyimi kullanarak verileri okumak için aşağıdaki kodu kullanın.

MySQL sunucusuyla arabirim oluşturmak için mysql.createConnection() yöntemi, kullanılır. Sunucuyla bağlantı kurmak için connect() yöntemi kullanılır. MySQL veritabanına karşı SQL sorgusunu yürütmek için query() yöntemi kullanılır.

host, user, password ve database parametrelerini, sunucu ve veritabanını oluştururken belirttiğiniz değerlerle değiştirin.

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

Kaynakları temizleme

Bu hızlı başlangıç sırasında kullanılan tüm kaynakları temizlemek için, aşağıdaki komutu kullanarak kaynak grubunu silin:

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

Sonraki adımlar