diff --git a/ChangeLog.md b/ChangeLog.md
new file mode 100644
--- /dev/null
+++ b/ChangeLog.md
@@ -0,0 +1,3 @@
+## 2.1.2
+
+Provide a `FromJSON` instance for `MySQLConf`.
diff --git a/Database/Persist/MySQL.hs b/Database/Persist/MySQL.hs
--- a/Database/Persist/MySQL.hs
+++ b/Database/Persist/MySQL.hs
@@ -15,7 +15,6 @@
     ) where
 
 import Control.Arrow
-import Control.Monad (mzero)
 import Control.Monad.Logger (MonadLogger, runNoLoggingT)
 import Control.Monad.IO.Class (MonadIO (..))
 import Control.Monad.Trans.Class (lift)
@@ -793,17 +792,8 @@
       -- ^ How many connections should be held on the connection pool.
     }
 
-
-instance PersistConfig MySQLConf where
-    type PersistConfigBackend MySQLConf = SqlPersistT
-
-    type PersistConfigPool    MySQLConf = ConnectionPool
-
-    createPoolConfig (MySQLConf cs size) = runNoLoggingT $ createMySQLPool cs size -- FIXME
-
-    runPool _ = runSqlPool
-
-    loadConfig (Object o) = do
+instance FromJSON MySQLConf where
+    parseJSON = withObject "MySQLConf" $ \o -> do
         database <- o .: "database"
         host     <- o .: "host"
         port     <- o .: "port"
@@ -822,7 +812,17 @@
                    , MySQL.connectDatabase = database
                    }
         return $ MySQLConf ci pool
-    loadConfig _ = mzero
+
+instance PersistConfig MySQLConf where
+    type PersistConfigBackend MySQLConf = SqlPersistT
+
+    type PersistConfigPool    MySQLConf = ConnectionPool
+
+    createPoolConfig (MySQLConf cs size) = runNoLoggingT $ createMySQLPool cs size -- FIXME
+
+    runPool _ = runSqlPool
+
+    loadConfig = parseJSON
 
     applyEnv conf = do
         env <- getEnvironment
diff --git a/persistent-mysql.cabal b/persistent-mysql.cabal
--- a/persistent-mysql.cabal
+++ b/persistent-mysql.cabal
@@ -1,5 +1,5 @@
 name:            persistent-mysql
-version:         2.1.1
+version:         2.1.2
 license:         MIT
 license-file:    LICENSE
 author:          Felipe Lessa <felipe.lessa@gmail.com>, Michael Snoyman
@@ -23,6 +23,7 @@
     .
     * This package does not support statements inside other
       statements.
+extra-source-files: ChangeLog.md
 
 library
     build-depends:   base                  >= 4        && < 5
