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