← Hyperdrive (Postgres & MySQL) / hyperdrive / examples
Připojení k MySQL
Hyperdrive podporuje databáze MySQL a databáze kompatibilní s MySQL, oblíbené ovladače, a knihovny Object Relational Mapper (ORM), které tyto ovladače využívají.
Vytvořte Hyperdrive
Chcete-li vytvořit Hyperdrive, který se připojí k existující databázi MySQL, použijte Wrangler CLI nebo Cloudflare dashboard ↗.
Při použití Wrangler nahraďte zástupnou hodnotu předanou parametru --connection-string s připojovacím řetězcem pro vaši databázi:
# wrangler v3.11 and above required
npx wrangler hyperdrive create my-first-hyperdrive --connection-string="mysql://user:[email protected]:3306/databasenamehere"Výše uvedený příkaz vypíše ID vašeho Hyperdrive, které budete potřebovat nastavit v Konfigurační soubor Wrangler pro váš projekt Workers:
{
// 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>"Díky tomu bude moci Hyperdrive ve vašem Workeru vygenerovat dynamický connection string, který můžete předat stávajícímu databázovému ovladači. Více informací najdete v Příklady ovladače a zjistěte, jak nastavit databázový ovladač s Hyperdrive.
Viz Dokumentace s příklady podrobné návody, jak nastavit Hyperdrive s několika oblíbenými poskytovateli databází.
Podporované ovladače
Hyperdrive využívá Workers Podpora TCP socketů pro podporu TCP připojení k databázím. Následující tabulka uvádí podporované databázové ovladače a minimální verzi, která s Hyperdrive funguje:
| Ovladač | Dokumentace | Minimální požadovaná verze | Poznámky |
|---|---|---|---|
| mysql2 (doporučeno) | dokumentace mysql2 ↗ | [email protected] |
Podporováno jak ve Workers, tak v Pages. Doporučuje se používat Promise API. |
| mysql | dokumentace mysql ↗ | [email protected] |
Vyžaduje compatibility_flags = ["nodejs_compat"] a compatibility_date = "2024-09-23": viz Kompatibilita s Node.js. Vyžaduje wrangler 3.78.7 nebo novější. |
| Drizzle | Dokumentace Drizzle ↗ | Vyžaduje [email protected] |
|
| Kysely | Dokumentace Kysely ↗ | Vyžaduje [email protected] |
^ Označené knihovny mohou jako závislost používat buď mysql, nebo mysql2.
Podporovány mohou být i další ovladače a ORM, které zde nejsou uvedeny: tento seznam není vyčerpávající.
Databázové ovladače a kompatibilita s Node.js
Kompatibilita s Node.js je vyžadován pro ovladače databáze, včetně mysql a mysql2, a je nutné jej nakonfigurovat pro váš projekt Workers.
Pro data kompatibility 2026-08-04 nebo novější mají projekty Workers a Pages povolené oba nodejs_compat a nodejs_compat_v2 ve výchozím nastavení. Vestavěná runtime API a polyfilly jsou dostupné bez dalšího nastavení. Tyto příznaky se pro tato data kompatibility nepoužívají. Stávající projekty je při aktualizaci data kompatibility nemusí odebírat.
Pokud je vaše datum kompatibility starší než 2026-08-04, přidejte nodejs_compat příznak kompatibility do vašeho Konfigurační soubor Wrangler abyste se přihlásili:
{
"compatibility_flags": [
"nodejs_compat"
]
}compatibility_flags = [ "nodejs_compat" ]Chcete-li vypnout Kompatibilita s Node.js zcela pro datum kompatibility 2026-08-04 nebo novější odeberte pozitivní příznaky, pokud jsou přítomné. Poté přidejte oba no_nodejs_compat a no_nodejs_compat_v2. Příklady konfigurace najdete v Příznak kompatibility s Node.js.
Podporované režimy TLS (SSL)
Hyperdrive podporuje při připojování k vaší zdrojové databázi následující režimy připojení MySQL TLS/SSL:
| Režim | Podporováno | Podrobnosti |
|---|---|---|
DISABLED |
Ne | Hyperdrive nepodporuje nezabezpečená připojení v prostém textu. |
PREFERRED |
Ne (použijte REQUIRED) |
Hyperdrive vždy použije TLS. |
REQUIRED |
Ano (výchozí) | TLS je vyžadováno a certifikáty serveru se ověřují (na základě WebPKI). |
VERIFY_CA |
Ano | Ověřuje, že je TLS certifikát serveru podepsán kořenovou CA na straně klienta. |
VERIFY_IDENTITY |
Ano | Kromě VERIFY_CA kontrolách vyžaduje Hyperdrive, aby název hostitele databáze odpovídal Subject Alternative Name (SAN) nebo Common Name (CN) na certifikátu. |
Viz Certifikáty SSL/TLS dokumentaci, kde najdete podrobnosti o konfiguraci VERIFY_CA nebo VERIFY_IDENTITY režimy TLS (SSL) pro Hyperdrive.
Příklady ovladače
Následující příklady ukazují, jak:
- Vytvořte databázového klienta pomocí databázového ovladače.
- Předejte connection string Hyperdrive a připojte se k databázi.
- Proveďte dotaz na databázi přes Hyperdrive.
mysql2
Následující kód Workers ukazuje, jak použít mysql2 ↗ s Hyperdrive pomocí Promise API.
Nainstalujte mysql2 ↗ ovladač:
npm i mysql2@>3.13.0Přidejte potřebné příznaky kompatibility s Node.js a vazbu Hyperdrive do svého wrangler.jsonc soubor:
{
// 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>"Vytvořte nový connection instance a předejte parametry 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>;mysql
Následující kód Workers ukazuje, jak použít mysql ↗ s Hyperdrive.
Nainstalujte mysql ↗ ovladač:
npm i mysqlPřidejte potřebné příznaky kompatibility s Node.js a vazbu Hyperdrive do svého wrangler.jsonc soubor:
{
// 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>"Vytvořte nové připojení a předejte mu parametry Hyperdrive:
import { createConnection } from "mysql";
export default {
async fetch(request, env, ctx): Promise<Response> {
const result = await new Promise<any>((resolve) => {
// Create a connection using the mysql driver with the Hyperdrive credentials (only accessible from your Worker).
const connection = createConnection({
host: env.HYPERDRIVE.host,
user: env.HYPERDRIVE.user,
password: env.HYPERDRIVE.password,
database: env.HYPERDRIVE.database,
port: env.HYPERDRIVE.port,
});
connection.connect((error: { message: string }) => {
if (error) {
throw new Error(error.message);
}
// Sample query
connection.query("SHOW tables;", [], (error, rows, fields) => {
resolve({ fields, rows });
});
});
});
// Return result as JSON
return new Response(JSON.stringify(result), {
headers: {
"Content-Type": "application/json",
},
});
},
} satisfies ExportedHandler<Env>;Identifikace připojení od Hyperdrive
Chcete-li zjistit aktivní připojení k serveru databáze MySQL z Hyperdrive:
- Připojení Hyperdrive k vaší databázi se zobrazí s
Cloudflare HyperdrivevPROGRAM_NAMEsloupec vperformance_schema.threadstabulka. - Spustit
SELECT DISTINCT USER, HOST, PROGRAM_NAME FROM performance_schema.threads WHERE PROGRAM_NAME = 'Cloudflare Hyperdrive'k zobrazení toho, zda Hyperdrive aktuálně drží otevřené připojení (nebo připojení) k vaší databázi.
Další kroky
- Přečtěte si seznam podporované databázové integrace a zjistěte další způsoby připojení k existujícím databázím.
- Další informace o tom, jak používat Socket API ve Workeru.
- Seznamte se s protokoly podporované službou Workers.