LS55321 LS55321 - 1 month ago 36
MySQL Question

Setting Django/MySQL site to use UTF-8

I want to set my Django site to use UTF-8 for MySQL in a foolproof way, regardless of whether the MySQL installation uses UTF-8 as its default. In addition to creating the tables with UTF-8 encoding, I added the following to my database initialization in settings.py to ensure the connection is also using utf-8:

'OPTIONS': { 'init_command': 'SET storage_engine=INNODB; SET names "utf8"' }


This results in an error:

_mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run this command now")


What is the right way to do this? Is there another place where the SET NAMES needs to be executed?

Answer Source

You need only using SET once only and appending others commands as:

'SET storage_engine=INNODB,character_set_connection=utf8,collation_connection=utf8_unicode_ci'