diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py
--- a/django/db/backends/mysql/base.py
+++ b/django/db/backends/mysql/base.py
@@ -239,6 +239,14 @@
                 self.connection = None
         return False
 
+    def _connect(self, **kwargs):
+        from django.utils.safestring import SafeString, SafeUnicode
+        from types import StringType, UnicodeType
+        connection = Database.connect(**kwargs)
+        connection.encoders[SafeString] = connection.encoders[StringType]
+        connection.encoders[SafeUnicode] = connection.encoders[UnicodeType]
+        return connection
+
     def _cursor(self, settings):
         if not self._valid_connection():
             kwargs = {
@@ -259,7 +267,7 @@
             if settings.DATABASE_PORT:
                 kwargs['port'] = int(settings.DATABASE_PORT)
             kwargs.update(self.options)
-            self.connection = Database.connect(**kwargs)
+            self.connection = self._connect(**kwargs)
         cursor = CursorWrapper(self.connection.cursor())
         return cursor
 
