BSD-3-Clause licensed by Bryan O'Sullivan
Maintained by Paul Rouse
This version can be pinned in stack with:mysql-0.2.1@sha256:156061d432d29b3a56037e8a67e16589b1d370fb9ad0dd71a81ea2c4b0b195bb,2188

Module documentation for 0.2.1

mysql: bindings to the mysqlclient library

This library is a Haskell binding to the MySQL mysqlclient client library. It is a fairly faithful, low level library that implements most of the MySQL client API. The major departure from the C API is that in Haskell, resource management is mostly automatic and safe.

This library deliberately avoids the question of providing a “good” API. Its purpose is to serve as a base upon which higher-level libraries can be built.


This library is BSD-licensed under the terms of the MySQL FOSS License Exception.

Since this library links against the GPL-licensed mysqlclient library, a non-open-source application that uses it may be subject to the terms of the GPL.

To do

  • Add support for prepared statements. The prepared statement API is huge and of dubious performance value, so it’s not currently a priority for us. Patches welcome!

Get involved!

We are happy to receive bug reports, fixes, documentation enhancements, and other improvements.

Please report bugs via the github issue tracker.

Master git repository:

  • git clone git://


This library was written by Bryan O’Sullivan, [email protected], to whom all of the credit is due. It is now being maintained by Paul Rouse, [email protected].



  • Work around incorrect test for header-file definition of MYSQL_TYPE_JSON (#45 and 51464fa)

  • Make connection finalizer thread safe (#28).


  • Remove obsolete fieldDefault from data Field (#41).

  • Fix error on certain systems introduced by the change in (#40): some implementations of mysql_config do not recognise --libs-sys, yet return a zero status for attempts to use it.

  • Update .cabal file

  • Use mysql_config --libs-sys in Setup.hs if available (#40)


  • Add support for JSON type


  • Fix build for mysql 8


  • Add Semigroup instance for FieldFlags
  • Fix some warnings
  • Drop testing under GHC 7.8 / lts-2


  • Expose mysql_thread_end() as endThread


  • Fix bystestring-valued connectOptions sometimes not being null terminated at the correct place (avoid unsafeUseAsCString).


  • Fix setup for cabal 1.24
  • New maintainer and GitHub location - with many thanks to Bryan O’Sullivan for all of the past work on this module, and for facilitating the transfer of maintenance responsibility.