diff --git a/src/main/java/com/google/gwtorm/jdbc/Database.java b/src/main/java/com/google/gwtorm/jdbc/Database.java
index 753ea15..553dde3 100644
--- a/src/main/java/com/google/gwtorm/jdbc/Database.java
+++ b/src/main/java/com/google/gwtorm/jdbc/Database.java
@@ -24,6 +24,7 @@
 import com.google.gwtorm.schema.SchemaModel;
 import com.google.gwtorm.schema.java.JavaSchemaModel;
 import com.google.gwtorm.schema.sql.DialectH2;
+import com.google.gwtorm.schema.sql.DialectMySQL;
 import com.google.gwtorm.schema.sql.DialectPostgreSQL;
 import com.google.gwtorm.schema.sql.SqlDialect;
 import com.google.gwtorm.server.StandardKeyEncoder;
@@ -87,6 +88,9 @@
         } else if (url.startsWith("jdbc:h2:")) {
           dialect = new DialectH2();
 
+        } else if (url.startsWith("jdbc:mysql:")) {
+          dialect = new DialectMySQL();
+
         } else {
           throw new OrmException("No dialect known for " + url);
         }
diff --git a/src/main/java/com/google/gwtorm/jdbc/JdbcSchema.java b/src/main/java/com/google/gwtorm/jdbc/JdbcSchema.java
index 6645c79..9eba791 100644
--- a/src/main/java/com/google/gwtorm/jdbc/JdbcSchema.java
+++ b/src/main/java/com/google/gwtorm/jdbc/JdbcSchema.java
@@ -25,7 +25,6 @@
 import com.google.gwtorm.schema.sql.SqlDialect;
 
 import java.sql.Connection;
-import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 
@@ -92,28 +91,7 @@
   }
 
   protected long nextLong(final String query) throws OrmException {
-    try {
-      final Statement st = getConnection().createStatement();
-      try {
-        final ResultSet rs = st.executeQuery(query);
-        try {
-          if (!rs.next()) {
-            throw new SQLException("No result row for sequence query");
-          }
-          final long r = rs.getLong(1);
-          if (rs.next()) {
-            throw new SQLException("Too many results from sequence query");
-          }
-          return r;
-        } finally {
-          rs.close();
-        }
-      } finally {
-        st.close();
-      }
-    } catch (SQLException e) {
-      throw convertError("sequence", query, e);
-    }
+    return getDialect().nextLong(getConnection(), query);
   }
 
   public Transaction beginTransaction() {
@@ -130,12 +108,4 @@
       conn = null;
     }
   }
-
-  private OrmException convertError(final String op, final String what,
-      final SQLException err) {
-    if (err.getCause() == null && err.getNextException() != null) {
-      err.initCause(err.getNextException());
-    }
-    return getDialect().convertError(op, what, err);
-  }
 }
diff --git a/src/main/java/com/google/gwtorm/schema/sql/DialectMySQL.java b/src/main/java/com/google/gwtorm/schema/sql/DialectMySQL.java
new file mode 100644
index 0000000..0844e4c
--- /dev/null
+++ b/src/main/java/com/google/gwtorm/schema/sql/DialectMySQL.java
@@ -0,0 +1,110 @@
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gwtorm.schema.sql;
+
+import com.google.gwtorm.client.Column;
+import com.google.gwtorm.client.OrmException;
+import com.google.gwtorm.client.Sequence;
+import com.google.gwtorm.schema.ColumnModel;
+import com.google.gwtorm.schema.RelationModel;
+import com.google.gwtorm.schema.SequenceModel;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.sql.Types;
+
+/** Dialect for <a href="http://www.mysql.com/">MySQL</a> */
+public class DialectMySQL extends SqlDialect {
+  public DialectMySQL() {
+    types.put(String.class, new SqlStringTypeInfo() {
+      @Override
+      public String getSqlType(final ColumnModel col, final SqlDialect dialect) {
+        final Column column = col.getColumnAnnotation();
+        final StringBuilder r = new StringBuilder();
+        final int type;
+
+        if (column.length() <= 0) {
+          r.append("VARCHAR(255)");
+          if (col.isNotNull()) {
+            r.append(" DEFAULT ''");
+          }
+        } else if (column.length() <= 255) {
+          r.append("VARCHAR(" + column.length() + ")");
+          if (col.isNotNull()) {
+            r.append(" DEFAULT ''");
+          }
+        } else {
+          r.append(dialect.getSqlTypeName(Types.LONGVARCHAR));
+        }
+
+        if (col.isNotNull()) {
+          r.append(" NOT NULL");
+        }
+
+        return r.toString();
+      }
+    });
+    types.put(java.sql.Timestamp.class, new SqlTimestampTypeInfo() {
+      @Override
+      public String getSqlDefault() {
+        return "'1970-01-01 00:00:01'";
+      }
+    });
+  }
+
+  @Override
+  public String getCreateSequenceSql(final SequenceModel seq) {
+    final Sequence s = seq.getSequence();
+    final StringBuilder r = new StringBuilder();
+    r.append("CREATE TABLE ");
+    r.append(seq.getSequenceName());
+    r.append("(s SERIAL)");
+    return r.toString();
+  }
+
+  @Override
+  public String getNextSequenceValueSql(final String seqname) {
+    return seqname;
+  }
+
+  @Override
+  public long nextLong(final Connection conn, final String seqname)
+      throws OrmException {
+    try {
+      final Statement st = conn.createStatement();
+      try {
+        st.execute("INSERT INTO " + seqname + "(s)VALUES(NULL)");
+        final long r;
+        final ResultSet rs = st.getGeneratedKeys();
+        try {
+          if (!rs.next()) {
+            throw new SQLException("No result row for sequence query");
+          }
+          r = rs.getLong(1);
+        } finally {
+          rs.close();
+        }
+        st.execute("DELETE FROM " + seqname + " WHERE s=" + r);
+        return r;
+      } finally {
+        st.close();
+      }
+    } catch (SQLException e) {
+      throw convertError("sequence", seqname, e);
+    }
+  }
+}
diff --git a/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java b/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
index aad86f0..8fa1cf3 100644
--- a/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
+++ b/src/main/java/com/google/gwtorm/schema/sql/SqlDialect.java
@@ -21,7 +21,9 @@
 import com.google.gwtorm.schema.SequenceModel;
 
 import java.sql.Connection;
+import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.sql.Types;
 import java.util.HashMap;
 import java.util.Map;
@@ -110,9 +112,38 @@
    */
   public OrmException convertError(final String op, final String entity,
       final SQLException err) {
+    if (err.getCause() == null && err.getNextException() != null) {
+      err.initCause(err.getNextException());
+    }
     return new OrmException(op + " failure on " + entity, err);
   }
 
+  public long nextLong(final Connection conn, final String query)
+      throws OrmException {
+    try {
+      final Statement st = conn.createStatement();
+      try {
+        final ResultSet rs = st.executeQuery(query);
+        try {
+          if (!rs.next()) {
+            throw new SQLException("No result row for sequence query");
+          }
+          final long r = rs.getLong(1);
+          if (rs.next()) {
+            throw new SQLException("Too many results from sequence query");
+          }
+          return r;
+        } finally {
+          rs.close();
+        }
+      } finally {
+        st.close();
+      }
+    } catch (SQLException e) {
+      throw convertError("sequence", query, e);
+    }
+  }
+
   public String getCreateSequenceSql(final SequenceModel seq) {
     final Sequence s = seq.getSequence();
     final StringBuilder r = new StringBuilder();
diff --git a/src/main/java/com/google/gwtorm/schema/sql/SqlTimestampTypeInfo.java b/src/main/java/com/google/gwtorm/schema/sql/SqlTimestampTypeInfo.java
index 9a71ad3..79be0b9 100644
--- a/src/main/java/com/google/gwtorm/schema/sql/SqlTimestampTypeInfo.java
+++ b/src/main/java/com/google/gwtorm/schema/sql/SqlTimestampTypeInfo.java
@@ -34,9 +34,14 @@
     final StringBuilder r = new StringBuilder();
     r.append(dialect.getSqlTypeName(getSqlTypeConstant()));
     if (col.isNotNull()) {
-      r.append(" DEFAULT '1900-01-01 00:00:00'");
+      r.append(" DEFAULT ");
+      r.append(getSqlDefault());
       r.append(" NOT NULL");
     }
     return r.toString();
   }
+
+  public String getSqlDefault() {
+    return "'1900-01-01 00:00:00'";
+  }
 }
