Hyperdrive - MySQL support in Hyperdrive is now generally available
- Announced
- Tags
- Hyperdrive
- Severity
- info, set by
reef/rss-rule-v1 - Source
- https://developers.cloudflare.com/changelog/post/2026-08-07-hyperdrive-mysql-ga/
<p>Support for MySQL in Hyperdrive is now generally available. You can connect to any MySQL database from your Workers using Hyperdrive.</p> <p>Hyperdrive makes your regional, MySQL databases fast when connecting from Cloudflare Workers. It eliminates unnecessary network roundtrips during connection setup, pools database connections globally, and can cache query results to provide the fastest possible response times.</p> <p>You can connect using your existing drivers, ORMs, and query builders with Hyperdrive's secure credentials, with no code changes required. MySQL support is available at the same <a href="https://developers.cloudflare.com/hyperdrive/platform/pricing/">pricing</a> as Postgres.</p> <div><div data-nb-tabs data-nb-sync-key="workersExamples" class><div class="relative flex border-b border-border" role="tablist" data-nb-tabs-list><span class="bg-primary pointer-events-none absolute -bottom-px h-0.5 rounded-t-sm transition-[left,width] duration-200 ease-out" data-nb-tabs-indicator aria-hidden="true"></span></div><div class="mt-3"><div role="tabpanel" data-nb-tabs-content data-nb-tab-label="JavaScript" class><figure class="nb-code-figure" data-nb-lang="js"><pre class="astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz" tabindex="0" data-language="js" data-nb-lang="js"><code><span class="line"><span class="nb-shiki-1itgoe">import</span><span class="nb-shiki-140thh"> { createConnection } </span><span class="nb-shiki-1itgoe">from</span><span class="nb-shiki-mdbnqw"> "mysql2/promise"</span><span class="nb-shiki-140thh">;</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1itgoe">export</span><span class="nb-shiki-1itgoe"> default</span><span class="nb-shiki-140thh"> {</span></span> <span class="line"><span class="nb-shiki-1itgoe"> async</span><span class="nb-shiki-1t8gfj"> fetch</span><span class="nb-shiki-140thh">(</span><span class="nb-shiki-1jdh33">request</span><span class="nb-shiki-140thh">, </span><span class="nb-shiki-1jdh33">env</span><span class="nb-shiki-140thh">, </span><span class="nb-shiki-1jdh33">ctx</span><span class="nb-shiki-140thh">) {</span></span> <span class="line"><span class="nb-shiki-1itgoe"> const</span><span class="nb-shiki-dzsirb"> connection</span><span class="nb-shiki-1itgoe"> =</span><span class="nb-shiki-1itgoe"> await</span><span class="nb-shiki-1t8gfj"> createConnection</span><span class="nb-shiki-140thh">({</span></span> <span class="line"><span class="nb-shiki-140thh"> host: env.</span><span class="nb-shiki-dzsirb">HYPERDRIVE</span><span class="nb-shiki-140thh">.host,</span></span> <span class="line"><span class="nb-shiki-140thh"> user: env.</span><span class="nb-shiki-dzsirb">HYPERDRIVE</span><span class="nb-shiki-140thh">.user,</span></span> <span class="line"><span class="nb-shiki-140thh"> password: env.</span><span class="nb-shiki-dzsirb">HYPERDRIVE</span><span class="nb-shiki-140thh">.password,</span></span> <span class="line"><span class="nb-shiki-140thh"> database: env.</span><span class="nb-shiki-dzsirb">HYPERDRIVE</span><span class="nb-shiki-140thh">.database,</span></span> <span class="line"><span class="nb-shiki-140thh"> port: env.</span><span class="nb-shiki-dzsirb">HYPERDRIVE</span><span class="nb-shiki-140thh">.port,</span></span> <span class="line"><span class="nb-shiki-140thh"> disableEval: </span><span class="nb-shiki-dzsirb">true</span><span class="nb-shiki-140thh">, </span><span class="nb-shiki-21nrsd">// Required for Workers compatibility</span></span> <span class="line"><span class="nb-shiki-140thh"> });</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1itgoe"> const</span><span class="nb-shiki-140thh"> [</span><span class="nb-shiki-dzsirb">results</span><span class="nb-shiki-140thh">, </span><span class="nb-shiki-dzsirb">fields</span><span class="nb-shiki-140thh">] </span><span class="nb-shiki-1itgoe">=</span><span class="nb-shiki-1itgoe"> await</span><span class="nb-shiki-140thh"> connection.</span><span class="nb-shiki-1t8gfj">query</span><span class="nb-shiki-140thh">(</span><span class="nb-shiki-mdbnqw">"SHOW tables;"</span><span class="nb-shiki-140thh">);</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-140thh"> ctx.</span><span class="nb-shiki-1t8gfj">waitUntil</span><span class="nb-shiki-140thh">(connection.</span><span class="nb-shiki-1t8gfj">end</span><span class="nb-shiki-140thh">());</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1itgoe"> return</span><span class="nb-shiki-1itgoe"> new</span><span class="nb-shiki-1t8gfj"> Response</span><span class="nb-shiki-140thh">(</span><span class="nb-shiki-dzsirb">JSON</span><span class="nb-shiki-140thh">.</span><span class="nb-shiki-1t8gfj">stringify</span><span class="nb-shiki-140thh">({ results, fields }), {</span></span> <span class="line"><span class="nb-shiki-140thh"> headers: {</span></span> <span class="line"><span class="nb-shiki-mdbnqw"> "Content-Type"</span><span class="nb-shiki-140thh">: </span><span class="nb-shiki-mdbnqw">"application/json"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-mdbnqw"> "Access-Control-Allow-Origin"</span><span class="nb-shiki-140thh">: </span><span class="nb-shiki-mdbnqw">"*"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh"> });</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh">};</span></span></code></pre></figure></div><div role="tabpanel" data-nb-tabs-content data-nb-tab-label="TypeScript" class><figure class="nb-code-figure" data-nb-lang="ts"><pre class="astro-code astro-code-themes github-light github-dark nb-shiki-c6xiwz" tabindex="0" data-language="ts" data-nb-lang="ts"><code><span class="line"><span class="nb-shiki-1itgoe">import</span><span class="nb-shiki-140thh"> { createConnection } </span><span class="nb-shiki-1itgoe">from</span><span class="nb-shiki-mdbnqw"> "mysql2/promise"</span><span class="nb-shiki-140thh">;</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1itgoe">export</span><span class="nb-shiki-1itgoe"> interface</span><span class="nb-shiki-1t8gfj"> Env</span><span class="nb-shiki-140thh"> {</span></span> <span class="line"><span class="nb-shiki-1jdh33"> HYPERDRIVE</span><span class="nb-shiki-1itgoe">:</span><span class="nb-shiki-1t8gfj"> Hyperdrive</span><span class="nb-shiki-140thh">;</span></span> <span class="line"><span class="nb-shiki-140thh">}</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1itgoe">export</span><span class="nb-shiki-1itgoe"> default</span><span class="nb-shiki-140thh"> {</span></span> <span class="line"><span class="nb-shiki-1itgoe"> async</span><span class="nb-shiki-1t8gfj"> fetch</span><span class="nb-shiki-140thh">(</span><span class="nb-shiki-1jdh33">request</span><span class="nb-shiki-140thh">, </span><span class="nb-shiki-1jdh33">env</span><span class="nb-shiki-140thh">, </span><span class="nb-shiki-1jdh33">ctx</span><span class="nb-shiki-140thh">)</span><span class="nb-shiki-1itgoe">:</span><span class="nb-shiki-1t8gfj"> Promise</span><span class="nb-shiki-140thh"><</span><span class="nb-shiki-1t8gfj">Response</span><span class="nb-shiki-140thh">> {</span></span> <span class="line"><span class="nb-shiki-1itgoe"> const</span><span class="nb-shiki-dzsirb"> connection</span><span class="nb-shiki-1itgoe"> =</span><span class="nb-shiki-1itgoe"> await</span><span class="nb-shiki-1t8gfj"> createConnection</span><span class="nb-shiki-140thh">({</span></span> <span class="line"><span class="nb-shiki-140thh"> host: env.</span><span class="nb-shiki-dzsirb">HYPERDRIVE</span><span class="nb-shiki-140thh">.host,</span></span> <span class="line"><span class="nb-shiki-140thh"> user: env.</span><span class="nb-shiki-dzsirb">HYPERDRIVE</span><span class="nb-shiki-140thh">.user,</span></span> <span class="line"><span class="nb-shiki-140thh"> password: env.</span><span class="nb-shiki-dzsirb">HYPERDRIVE</span><span class="nb-shiki-140thh">.password,</span></span> <span class="line"><span class="nb-shiki-140thh"> database: env.</span><span class="nb-shiki-dzsirb">HYPERDRIVE</span><span class="nb-shiki-140thh">.database,</span></span> <span class="line"><span class="nb-shiki-140thh"> port: env.</span><span class="nb-shiki-dzsirb">HYPERDRIVE</span><span class="nb-shiki-140thh">.port,</span></span> <span class="line"><span class="nb-shiki-140thh"> disableEval: </span><span class="nb-shiki-dzsirb">true</span><span class="nb-shiki-140thh">, </span><span class="nb-shiki-21nrsd">// Required for Workers compatibility</span></span> <span class="line"><span class="nb-shiki-140thh"> });</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1itgoe"> const</span><span class="nb-shiki-140thh"> [</span><span class="nb-shiki-dzsirb">results</span><span class="nb-shiki-140thh">, </span><span class="nb-shiki-dzsirb">fields</span><span class="nb-shiki-140thh">] </span><span class="nb-shiki-1itgoe">=</span><span class="nb-shiki-1itgoe"> await</span><span class="nb-shiki-140thh"> connection.</span><span class="nb-shiki-1t8gfj">query</span><span class="nb-shiki-140thh">(</span><span class="nb-shiki-mdbnqw">"SHOW tables;"</span><span class="nb-shiki-140thh">);</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-140thh"> ctx.</span><span class="nb-shiki-1t8gfj">waitUntil</span><span class="nb-shiki-140thh">(connection.</span><span class="nb-shiki-1t8gfj">end</span><span class="nb-shiki-140thh">());</span></span> <span class="line"></span> <span class="line"><span class="nb-shiki-1itgoe"> return</span><span class="nb-shiki-1itgoe"> new</span><span class="nb-shiki-1t8gfj"> Response</span><span class="nb-shiki-140thh">(</span><span class="nb-shiki-dzsirb">JSON</span><span class="nb-shiki-140thh">.</span><span class="nb-shiki-1t8gfj">stringify</span><span class="nb-shiki-140thh">({ results, fields }), {</span></span> <span class="line"><span class="nb-shiki-140thh"> headers: {</span></span> <span class="line"><span class="nb-shiki-mdbnqw"> "Content-Type"</span><span class="nb-shiki-140thh">: </span><span class="nb-shiki-mdbnqw">"application/json"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-mdbnqw"> "Access-Control-Allow-Origin"</span><span class="nb-shiki-140thh">: </span><span class="nb-shiki-mdbnqw">"*"</span><span class="nb-shiki-140thh">,</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh"> });</span></span> <span class="line"><span class="nb-shiki-140thh"> },</span></span> <span class="line"><span class="nb-shiki-140thh">} </span><span class="nb-shiki-1itgoe">satisfies</span><span class="nb-shiki-1t8gfj"> ExportedHandler</span><span class="nb-shiki-140thh"><</span><span class="nb-shiki-1t8gfj">Env</span><span class="nb-shiki-140thh">>;</span></span></code></pre></figure></div></div></div><script type="module" src="https://developers.cloudflare.com/home/runner/work/cloudflare-docs/cloudflare-docs/src/components/ui/tabs/Tabs.astro?astro&type=script&index=0&lang.ts"></script></div> <p>Learn more about <a href="https://developers.cloudflare.com/hyperdrive/concepts/how-hyperdrive-works/">how Hyperdrive works</a> and <a href="https://developers.cloudflare.com/hyperdrive/get-started/">get started building Workers that connect to MySQL with Hyperdrive</a>.</p>
The text above is the source's. reef added the severity, the dates it could read from the text, and the endpoints and scopes named in code.