diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php
index f662f5138e5caa39054f7eae0e4f3ebee99f5057..bbd5d99e3a7b2c8d1dcd11b77d2cf7901659e1d4 100644
--- a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php
+++ b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php
@@ -279,18 +279,28 @@ class MetaDataStorageHandlerPdo extends MetaDataStorageSource
     {
         $stmt = 0;
         $fine = true;
+        $driver = $this->db->getDriver();
+
+        $text = 'TEXT';
+        if ($driver === 'mysql') {
+            $text = 'MEDIUMTEXT';
+        }
+
         foreach ($this->supportedSets as $set) {
             $tableName = $this->getTableName($set);
-            $rows = $this->db->write(
-                "CREATE TABLE IF NOT EXISTS $tableName (entity_id VARCHAR(255) PRIMARY KEY NOT NULL, entity_data " .
-                "TEXT NOT NULL)"
-            );
+            $rows = $this->db->write(sprintf(
+                "CREATE TABLE IF NOT EXISTS $tableName (entity_id VARCHAR(255) PRIMARY KEY NOT NULL, "
+                    . "entity_data %s NOT NULL)",
+                $text
+            ));
+
             if ($rows === false) {
                 $fine = false;
             } else {
                 $stmt += $rows;
             }
         }
+
         if (!$fine) {
             return false;
         }