← Hyperdrive (Postgres & MySQL) / hyperdrive / examples / connect-to-mysql / mysql-database-providers
Azure Database
В этом примере показано, как подключить Hyperdrive к инстансу Azure Database for MySQL.
1. Разрешите доступ к Hyperdrive
Чтобы Hyperdrive мог подключаться к вашей базе данных, убедитесь, что у него есть действительные учётные данные и сетевой доступ.
Azure Portal
Сеть с публичным доступом
Чтобы подключиться к своему экземпляру Azure Database for MySQL через публичный интернет:
- В Azure Portal ↗, выберите инстанс, к которому должен подключаться Hyperdrive.
- Развернуть Настройки > Сеть > убедитесь, что Публичный доступ включён > в Правила Firewall добавьте
0.0.0.0как Начальный IP-адрес и255.255.255.255как Конечный IP-адрес. - Выберите Save чтобы сохранить изменения.
- Выберите Обзор на боковой панели и запишите Имя сервера вашего экземпляра.
Имея имя пользователя, пароль, имя сервера и имя базы данных (по умолчанию: mysql), теперь вы можете создать конфигурацию базы данных Hyperdrive.
Сеть с приватным доступом
Чтобы подключиться к приватному экземпляру Azure Database for MySQL, см. Подключение к частной базе данных через Tunnel.
2. Создание конфигурации базы данных
Чтобы настроить Hyperdrive, вам потребуется:
- IP-адрес (или имя хоста) и порт вашей базы данных.
- Имя пользователя базы данных (например,
hyperdrive-demo) которую вы настроили на предыдущем шаге. - Пароль, связанный с этим именем пользователя.
- Имя базы данных, к которой должен подключиться Hyperdrive. Например,
mysql.
Hyperdrive принимает комбинацию этих параметров в стандартном формате строки подключения, который используется драйверами баз данных:
mysql://USERNAME:PASSWORD@HOSTNAME_OR_IP_ADDRESS:PORT/database_nameБольшинство провайдеров баз данных предоставляют строку подключения, которую можно скопировать и вставить прямо в Hyperdrive.
Чтобы создать конфигурацию Hyperdrive с помощью Wrangler CLI, откройте терминал и выполните следующую команду.
- Замените <NAME_OF_HYPERDRIVE_CONFIG> на имя вашей конфигурации Hyperdrive и вставьте строку подключения, предоставленную вашим хостом базы данных, или,
- Замените
user,password,HOSTNAME_OR_IP_ADDRESS,port, а такжеdatabase_nameзаполнители значениями, соответствующими вашей базе данных:
npx wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string="mysql://user:password@HOSTNAME_OR_IP_ADDRESS:PORT/database_name"Эта команда выводит привязку для конфигурационный файл Wrangler:
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "hyperdrive-example",
"main": "src/index.ts",
// Set this to today's date
"compatibility_date": "2026-08-28",
"compatibility_flags": [
"nodejs_compat"
],
// Pasted from the output of `wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string=[...]` above.
"hyperdrive": [
{
"binding": "HYPERDRIVE",
"id": "<ID OF THE CREATED HYPERDRIVE CONFIGURATION>"
}
]
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "hyperdrive-example"
main = "src/index.ts"
# Set this to today's date
compatibility_date = "2026-08-28"
compatibility_flags = [ "nodejs_compat" ]
[[hyperdrive]]
binding = "HYPERDRIVE"
id = "<ID OF THE CREATED HYPERDRIVE CONFIGURATION>"3. Использование Hyperdrive в вашем Worker
Установите mysql2 ↗ драйвер:
npm i mysql2@>3.13.0Добавьте необходимые флаги совместимости Node.js и привязку Hyperdrive в свой wrangler.jsonc файле:
{
// required for database drivers to function
"compatibility_flags": [
"nodejs_compat"
],
// Set this to today's date
"compatibility_date": "2026-08-28",
"hyperdrive": [
{
"binding": "HYPERDRIVE",
"id": "<your-hyperdrive-id-here>"
}
]
}compatibility_flags = [ "nodejs_compat" ]
# Set this to today's date
compatibility_date = "2026-08-28"
[[hyperdrive]]
binding = "HYPERDRIVE"
id = "<your-hyperdrive-id-here>"Создайте новый connection экземпляр и передайте параметры Hyperdrive:
// mysql2 v3.13.0 or later is required
import { createConnection } from "mysql2/promise";
export default {
async fetch(request, env, ctx): Promise<Response> {
// Create a new connection on each request. Hyperdrive maintains the underlying
// database connection pool, so creating a new connection is fast.
const connection = await createConnection({
host: env.HYPERDRIVE.host,
user: env.HYPERDRIVE.user,
password: env.HYPERDRIVE.password,
database: env.HYPERDRIVE.database,
port: env.HYPERDRIVE.port,
// Required to enable mysql2 compatibility for Workers
disableEval: true,
});
try {
// Sample query
const [results, fields] = await connection.query("SHOW tables;");
// Return result rows as JSON
return Response.json({ results, fields });
} catch (e) {
console.error(e);
return Response.json(
{ error: e instanceof Error ? e.message : e },
{ status: 500 },
);
}
},
} satisfies ExportedHandler<Env>;Следующие шаги
- Подробнее о Как работает Hyperdrive.
- См. руководство по устранению неполадок чтобы отладить типичные проблемы.
- Узнайте больше о других варианты хранения доступен для Cloudflare Workers.