Snabbstart: Använd Node.js för att ansluta och fråga efter data i Azure Database for MySQL – flexibel server
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" list
Verifiera 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
host
alternativen ,password
user
ochdatabase
config 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
ssl
ersätter duca-cert
filnamnet 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