OperationalError: (2019, "Cannot initialize utf8mb4 character set (path: C: \\ mysql \\\\ share \\ charsets \\)" ")

I configured the Django database setup in settings.py with

'OPTIONS': {'charset': 'utf8mb4'},

All columns and tables have a value of utf8mb4.

I want this encoding to save emojis as: 😍😂🙈💁🏼

When I run my script on Mac or Linux, it works fine, but on Windows I get:

    <module>    C:\Users\Josh\Documents\mysite\myproj\scripts\crawler.py    154     
    __getitem__ C:\Python27\Lib\site-packages\django\db\models\query.py 295     
    __iter__    C:\Python27\Lib\site-packages\django\db\models\query.py 256     
    _fetch_all  C:\Python27\Lib\site-packages\django\db\models\query.py 1087        
    __iter__    C:\Python27\Lib\site-packages\django\db\models\query.py 54      
    execute_sql C:\Python27\Lib\site-packages\django\db\models\sql\compiler.py  833     
    cursor  C:\Python27\Lib\site-packages\django\db\backends\base\base.py   231     
    _cursor C:\Python27\Lib\site-packages\django\db\backends\base\base.py   204     
    ensure_connection   C:\Python27\Lib\site-packages\django\db\backends\base\base.py   199     
    __exit__    C:\Python27\Lib\site-packages\django\db\utils.py    94      
    ensure_connection   C:\Python27\Lib\site-packages\django\db\backends\base\base.py   199     
    connect C:\Python27\Lib\site-packages\django\db\backends\base\base.py   171     
    get_new_connection  C:\Python27\Lib\site-packages\django\db\backends\mysql\base.py  263     
    Connect c:\users\josh\appdata\local\temp\easy_install-iz3bc1\MySQL_python-1.2.5-py2.7-win32.egg.tmp\MySQLdb\__init__.py 81      
    __init__    c:\users\josh\appdata\local\temp\easy_install-iz3bc1\MySQL_python-1.2.5-py2.7-win32.egg.tmp\MySQLdb\connections.py  221     
    set_character_set   c:\users\josh\appdata\local\temp\easy_install-iz3bc1\MySQL_python-1.2.5-py2.7-win32.egg.tmp\MySQLdb\connections.py  312     
"OperationalError: (2019, ""Can't initialize character set utf8mb4 (path: C:\\mysql\\\\share\\charsets\\)"")"   

The line of code in which it throws an exception:

Object.objects.filter(last_scraped__isnull=True)[0]

Versions:

Python 2.7

Database: MariaDB 5.5

Windows 7 64-bit

+4
source share
1 answer

This is neither a Django problem nor Mysql, it is a Windows problem. Unfortunately, it does not support unicode in the best way.

Django 0.9 2004 Windows XP. . Cygwin, , . , Windows. Linux, Mac "".

, :

script Mac Linux, , Windows [error].

- Mac Linux. * nix, Windows Django Mysql env Vagrant Docker.

emojis .

django:

enter image description here

:

enter image description here

.

:

  • heroku hosting (linux)
  • PostgreSQL ( )
  • Python 3.5.2
  • UTF-8.
-2

Source: https://habr.com/ru/post/1663430/


All Articles