Краткое руководство. Подключение к Базе данных Azure для MySQL (гибкий сервер) и запрос данных с помощью Node.js
В этом кратком руководстве вы подключаетесь к гибкому серверу База данных Azure для MySQL с помощью Node.js. Затем вы используете инструкции SQL для запроса, вставки, обновления и удаления данных в базе данных с платформ Mac, Linux и Windows.
В этой статье предполагается, что вы знакомы с разработкой с помощью Node.js, но вы не знакомы с База данных Azure для MySQL гибким сервером.
Необходимые компоненты
В качестве отправной точки в этом кратком руководстве используются ресурсы, созданные в соответствии со следующими материалами:
- Краткое руководство. Создание экземпляра База данных Azure для MySQL с помощью портал Azure
- Краткое руководство. Создание экземпляра База данных Azure для MySQL — гибкий сервер с помощью Azure CLI
Внимание
Убедитесь, что IP-адрес, из который вы подключаетесь, был добавлен правила брандмауэра сервера с помощью правил управления брандмауэром для База данных Azure для MySQL — гибкий сервер с помощью портал Azure или управления правилами брандмауэра для База данных Azure для MySQL — гибкий сервер с помощью Azure CLI
Установка Node.js и соединителя MySQL
В зависимости от используемой платформы выполните инструкции из соответствующего раздела, чтобы установить Node.js. Используйте npm, чтобы установить пакет mysql2 и его зависимости в папку проекта.
Войдите на страницу скачиваемых файлов Node.js и выберите нужный установщик Windows.
Создайте папку локального проекта, например
nodejsmysql
.Откройте командную строку и перейдите в папку проекта, например в
cd c:\nodejsmysql\
.Запустите средство NPM, чтобы установить библиотеку mysql2 в папку проекта.
cd c:\nodejsmysql\ "C:\Program Files\nodejs\npm" install mysql2 "C:\Program Files\nodejs\npm" list
Проверьте установку, просмотрев текст вывода
npm list
. Номер версии может отличаться по мере выпуска новых исправлений.
Получение сведений о подключении
Получите сведения о подключении, необходимые для подключения к экземпляру гибкого сервера База данных Azure для MySQL. Вам потребуется полное имя сервера и учетные данные для входа.
- Войдите на портал Azure.
- В меню слева на портале Azure выберите Все ресурсы и выполните поиск по имени созданного сервера (например, mydemoserver).
- Выберите имя сервера.
- Запишите имя сервера и имя для входа администратора сервера с панели сервера Обзор. Если вы забыли свой пароль, можно также сбросить пароль с помощью этой панели.
Запуск примеров кода
- Вставьте код JavaScript в текстовые файлы и сохраните их в папку проекта с расширением файла .js, например C:\nodejsmysql\createtable.js or /home/username/nodejsmysql/createtable.js).
- Замените
host
параметры конфигурацииuser
password
иdatabase
параметров конфигурации в коде значениями, указанными при создании гибкого сервера MySQL и базы данных. - Получение SSL-сертификата. Чтобы использовать зашифрованные подключения с клиентскими приложениями, необходимо скачать общедоступный SSL-сертификат, который также доступен в колонке портал Azure Сети, как показано на снимке экрана ниже.
Сохраните файл сертификата в любое расположение.
- В параметре конфигурации
ssl
замените имя файлаca-cert
на путь к этому локальному файлу. Это позволит приложению безопасно подключаться к базе данных по протоколу SSL. - Откройте командную строку или оболочку Bash и перейдите в папку проекта
cd nodejsmysql
. - Чтобы запустить приложение, введите команду Node, указав после нее имя файла, например
node createtable.js
. - В Windows, если приложение узла не в пути переменной среды, может потребоваться использовать полный путь для запуска приложения узла, например
"C:\Program Files\nodejs\node.exe" createtable.js
Подключение, создание таблицы и вставка данных
Используйте приведенный ниже код для подключения и загрузки данных с помощью инструкций SQL CREATE TABLE и INSERT INTO.
Метод mysql.createConnection() используется для взаимодействия с экземпляром гибкого сервера База данных Azure для MySQL. Функция connect() используется для подключения к серверу. Функция query() используется для выполнения SQL-запроса к базе данных MySQL.
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.')
});
};
Чтение данных
Используйте указанный ниже код с инструкцией SQL SELECT для подключения и чтения данных.
Метод mysql.createConnection() используется для взаимодействия с экземпляром гибкого сервера База данных Azure для MySQL. Метод connect() используется для подключения к серверу. Метод query() используется для выполнения SQL-запроса к базе данных MySQL. Массив результатов используется для хранения результатов запроса.
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.')
});
};
Обновление данных
Используйте указанный ниже код с инструкцией SQL UPDATE для подключения и обновления данных.
Метод mysql.createConnection() используется для взаимодействия с экземпляром гибкого сервера База данных Azure для MySQL. Метод connect() используется для подключения к серверу. Метод query() используется для выполнения SQL-запроса к базе данных MySQL.
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.')
});
};
Удаление данных
Используйте указанный ниже код, чтобы подключиться и удалить данные с помощью инструкции SQL DELETE.
Метод mysql.createConnection() используется для взаимодействия с экземпляром гибкого сервера База данных Azure для MySQL. Метод connect() используется для подключения к серверу. Метод query() используется для выполнения SQL-запроса к базе данных MySQL.
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.')
});
};
Очистка ресурсов
Чтобы очистить все ресурсы, используемые во время этого краткого руководства, удалите группу ресурсов с помощью следующей команды:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Связанный контент
- Подключение к базе данных Azure для MySQL — гибкому серверу с зашифрованными подключениями
- Основные понятия подключения и сети для База данных Azure для MySQL — гибкий сервер
- Управление правилами брандмауэра для База данных Azure для MySQL — гибкий сервер с помощью портал Azure
- Создание виртуальных сетей для База данных Azure для MySQL — гибкий сервер с помощью портал Azure