Rychlý start: Použití Node.js k připojení a dotazování dat ve službě Azure Database for MySQL
Upozornění
Tento článek odkazuje na CentOS, což je linuxová distribuce se stavem Konec životnosti (EOL). Zvažte své použití a plánování odpovídajícím způsobem. Další informace najdete v doprovodných materiálech CentOS End Of Life.
PLATÍ PRO: Jednoúčelový server Azure Database for MySQL
Důležité
Jednoúčelový server Azure Database for MySQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for MySQL. Další informace o migraci na flexibilní server Azure Database for MySQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for MySQL?
V tomto rychlém startu se připojíte ke službě Azure Database for MySQL pomocí Node.js. Potom použijete příkazy SQL k dotazování, vkládání, aktualizaci a odstraňování dat v databázi z platforem Mac, Linux a Windows.
Tento článek předpokládá, že máte zkušenosti s vývojem pomocí Node.js, ale začínáte pracovat se službou Azure Database for MySQL.
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Server Azure Database for MySQL. Vytvořte server Azure Database for MySQL pomocí webu Azure Portal nebo vytvořte server Azure Database for MySQL pomocí Azure CLI.
Důležité
Ujistěte se, že ip adresa, ze které se připojujete, byla přidána pravidla brány firewall serveru pomocí webu Azure Portal nebo Azure CLI.
Instalace Node.js a konektoru MySQL
V závislosti na vaší platformě nainstalujte Node.js podle pokynů v příslušné části. Pomocí npm nainstalujte balíček mysql2 a jeho závislosti do složky projektu.
Přejděte na stránku pro stažení Node.js a vyberte požadovanou možnost Instalační služby systému Windows.
Vytvořte místní složku projektu, například
nodejsmysql
.Otevřete příkazový řádek a pak změňte adresář do složky projektu, například
cd c:\nodejsmysql\
Spusťte nástroj NPM a nainstalujte knihovnu mysql2 do složky projektu.
cd c:\nodejsmysql\ "C:\Program Files\nodejs\npm" install mysql2 "C:\Program Files\nodejs\npm" list
Ověřte instalaci kontrolou výstupního
npm list
textu. Číslo verze se může lišit v závislosti na vydávání nových oprav.
Získání informací o připojení
Získejte informace o připojení potřebné pro připojení ke službě Azure Database for MySQL. Potřebujete plně kvalifikovaný název serveru a přihlašovací údaje.
- Přihlaste se k webu Azure Portal.
- V nabídce vlevo na webu Azure Portal vyberte Všechny prostředky a vyhledejte server, který jste vytvořili (například mydemoserver).
- Vyberte název serveru.
- Na panelu Přehled serveru si poznamenejte Název serveru a Přihlašovací jméno správce serveru. Pokud zapomenete své heslo, můžete ho na tomto panelu také resetovat.
Spuštění ukázek kódu
Vložte kód JavaScriptu do nových textových souborů a uložte ho do složky projektu s příponou souboru .js (například C:\nodejsmysql\createtable.js nebo /home/username/nodejsmysql/createtable.js).
Nahraďte
host
možnosti ,user
password
adatabase
konfigurace v kódu hodnotami, které jste zadali při vytváření serveru a databáze.Získání certifikátu SSL: Stáhněte si certifikát potřebný ke komunikaci přes PROTOKOL SSL se serverem https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem Azure Database for MySQL a uložte soubor certifikátu na místní disk.
Microsoft Internet Explorer a Microsoft Edge: Po dokončení stahování přejmenujte certifikát na DigiCertGlobalRootCA.crt.pem.
Projděte si následující odkazy na certifikáty pro servery v suverénních cloudech: Azure Government, Microsoft Azure provozované společností 21Vianet a Azure Germany.
ssl
V konfigurační možnosti nahraďteca-cert
název souboru cestou k tomuto místnímu souboru.Otevřete příkazový řádek nebo prostředí Bash a pak změňte adresář do složky
cd nodejsmysql
projektu .Pokud chcete aplikaci spustit, zadejte příkaz uzlu následovaný názvem souboru, například
node createtable.js
.Pokud aplikace uzlu ve Windows není ve vaší cestě proměnné prostředí, možná budete muset ke spuštění aplikace uzlu použít úplnou cestu, například
"C:\Program Files\nodejs\node.exe" createtable.js
Připojení, vytvoření tabulky a vložení dat
Pomocí následujícího kódu se připojte a nahrajte data s využitím příkazů CREATE TABLE a INSERT INTO jazyka SQL.
Metoda mysql.createConnection() slouží k vytvoření rozhraní pro server MySQL. Funkce connect() se používá k navázání připojení k serveru. Funkce query() se používá k provedení příkazu jazyka SQL na databázi MySQL.
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.')
});
};
Čtení dat
Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu SELECT jazyka SQL.
Metoda mysql.createConnection() slouží k vytvoření rozhraní pro server MySQL. Metoda connect() se používá k navázání připojení k serveru. Metoda query() se používá k provedení příkazu jazyka SQL na databázi MySQL. Pole results slouží k ukládání výsledků dotazu.
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.')
});
};
Aktualizace dat
Pomocí následujícího kódu se připojte a aktualizujte data pomocí příkazu UPDATE SQL .
Metoda mysql.createConnection() slouží k vytvoření rozhraní pro server MySQL. Metoda connect() se používá k navázání připojení k serveru. Metoda query() se používá k provedení příkazu jazyka SQL na databázi MySQL.
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.')
});
};
Odstranění dat
Pomocí následujícího kódu se připojte a odstraňte data pomocí příkazu DELETE SQL.
Metoda mysql.createConnection() slouží k vytvoření rozhraní pro server MySQL. Metoda connect() se používá k navázání připojení k serveru. Metoda query() se používá k provedení příkazu jazyka SQL na databázi MySQL.
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.')
});
};
Vyčištění prostředků
Pokud chcete vyčistit všechny prostředky použité během tohoto rychlého startu, odstraňte skupinu prostředků pomocí následujícího příkazu:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes