Django OperationalError 2019无法初始化字符集utf8mb4

bev*_*nzo 5 mysql django heroku amazon-rds django-celery

我整天都在努力解决这个问题,但却无法找到解决方案,甚至找不到错误的根本原因.当我在本地运行我的应用程序时它工作正常.我的生产实例正在使用Heroku雪松堆栈和Amazon RDS MySQL数据库.

在我的设置文件中,我有: 'OPTIONS': {'charset': 'utf8mb4'}

当我推送到Heroku时,它崩溃并出现错误: _mysql_exceptions.OperationalError: (2019, "Can't initialize character set utf8mb4 (path: /usr/share/mysql/charsets/)")

异常位置: /app/.heroku/python/lib/python2.7/site-packages/MySQLdb/connections.py in set_character_set, line 298

我已使用Amazon RDS MySQL创建了相应的数据库参数,目前设置如下:

+--------------------------+-------------------------------------------+
| Variable_name            | Value                                     |
+--------------------------+-------------------------------------------+
| character_set_client     | utf8mb4                                   |
| character_set_connection | utf8mb4                                   |
| character_set_database   | utf8mb4                                   |
| character_set_filesystem | binary                                    |
| character_set_results    | utf8mb4                                   |
| character_set_server     | utf8mb4                                   |
| character_set_system     | utf8                                      |
| character_sets_dir       | /rdsdbbin/mysql-5.6.13.R1/share/charsets/ |
+--------------------------+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

我在跑步:

MySQL 5.6.13
MySQL-python==1.2.4
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.如果有更多我遗漏的细节,请告诉我.

bev*_*nzo 5

原来问题在于Heroku以及他们缺乏对所需库的支持:

这是Heroku的支持人员告诉我的:

此编码需要MySQL的libmysqlclient C共享库的最新版本.很抱歉,我们目前没有计划在不久的将来升级此库.您可以按照https://devcenter.heroku.com/articles/buildpack-binaries上的说明构建自己的二进制依赖项版本.