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

标签 mysql django heroku django-celery amazon-rds

我为此苦苦挣扎了一整天,一直未能找到解决方案,甚至找不到错误的根本原因。当我在本地运行我的应用程序时,它工作正常。我的生产实例使用 Heroku cedar stack 和 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/ |
+--------------------------+-------------------------------------------+

我在运行:

MySQL 5.6.13
MySQL-python==1.2.4

在此先感谢您的帮助。如果我遗漏了更多详细信息,请告诉我。

最佳答案

原来问题出在 Heroku 上,他们缺乏对所需库的支持:

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

This encoding requires an up-to-date version of MySQL's libmysqlclient C shared library. Sorry but we don't currently have plans to upgrade this library in the immediate future. You can build your own versions of binary dependencies by following the instructions at https://devcenter.heroku.com/articles/buildpack-binaries

关于mysql - Django OperationalError 2019 无法初始化字符集utf8mb4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18796168/

相关文章:

django DEBUG = False仍在 Debug模式下运行

Django 密码字段占位符

ruby-on-rails - PostgreSQL "could not identify an equality operator for type json"的 Heroku 错误

php - MySQL UPDATE 或 INSERT 取决于 ID 的存在

mysql - 什么是 PHP strip_tags 的 MySQL 查询等价物?

mysql - MySQL 表名区分大小写吗?

django - 如何使用 heroku 修复 "No module named storages.backends.s3boto"错误?

php - opencart商店安装问题

python - 为什么 Django 使用 BaseForm?

python - Django Celery 周期性任务运行但 RabbitMQ 队列未被消耗