releases.sh

MySQL support in Hyperdrive is GA

1 featureThis release1 featureNew capabilitiesAI-tallied from the release notes
From the original release noteView original ↗

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

MySQL support in Hyperdrive is GA — Developer Platform… — releases.sh