【问题标题】:Django OperationalError 2019 Can't initialize character set utf8mb4Django OperationalError 2019 无法初始化字符集 utf8mb4
【发布时间】:2013-09-18 17:21:05
【问题描述】:

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

提前感谢您的帮助。如果我遗漏了更多细节,请告诉我。

【问题讨论】:

  • 更新:如果我运行 SHOW GLOBAL VARIABLES LIKE '%character%';它显示了所有正确的 utf8mb4 值,但这些变量并未应用于实际的数据库实例。

标签: mysql django heroku django-celery amazon-rds


【解决方案1】:

对于未来的读者:截至 2014 年底,该特定问题的解决方案是使用 cedar-14 堆栈,其中包括最新的 mysql 二进制文件(由我测试)。 一般的解决方案是编译您自己的二进制文件并创建一个自定义构建包,如advised by the heroku people

【讨论】:

    【解决方案2】:

    ? 例如是 utf8mb4。许多像人物一样的奇怪图片。

    【讨论】:

      【解决方案3】:

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

      以下是 Heroku 的支持人员告诉我的:

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

      【讨论】:

      • 你最终以某种方式解决了这个问题吗?
      猜你喜欢
      • 2016-02-23
      • 2016-12-13
      • 2017-09-07
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 2020-04-21
      • 2019-12-12
      • 2020-12-07
      相关资源
      最近更新 更多