MySQL support in Hyperdrive is GA
Support for MySQL in Hyperdrive is now generally available. You can connect to any MySQL database from your Workers using Hyperdrive.
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.
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 pricing as Postgres.
<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>
<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>
Learn more about how Hyperdrive works and get started building Workers that connect to MySQL with Hyperdrive.
Fetched August 10, 2026



