Reputation: 8194
MySQL 5.5.35 Django 1.6.1
In order to support emoticons in the DB, I have configured in my django settings:
'OPTIONS': {'charset': 'utf8mb4'}
On MySQL connection, I get this error: LookupError: unknown encoding: utf8mb4
How should I configure Django/MySQL in order to support utf8mb4?
Upvotes: 11
Views: 14072
Reputation: 702
This worked in my case (MySQL 5.7 + Django 3.1):
Configure Django:
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'charset': 'utf8mb4'
}
Configure MySQL database
Upvotes: -1
Reputation: 21
Fast and easy way.
connection = mysql.connector.connect(user='username',
password='mypass',
host='localhost',
database='mydb',
use_pure=True,
charset='utf8'
)
Upvotes: 0
Reputation: 111
If you really need utf8mb4, follow the steps in https://mathiasbynens.be/notes/mysql-utf8mb4, and make sure your python package "MySQL-python" version is >= 1.2.5 !
Upvotes: 11
Reputation: 10392
https://code.djangoproject.com/ticket/18392#comment:10
As a workaround, you can make python understand 'utf8mb4' as an alias for 'utf8':
import codecs codecs.register(lambda name: codecs.lookup('utf8') if name == 'utf8mb4' else None)
Upvotes: 18