将unicode插入数据库时MySQL中排序规则的非法混合

将unicode插入数据库时MySQL中排序规则的非法混合,mysql,django,unicode,Mysql,Django,Unicode,在django测试期间插入包含unicode字符的行时,我遇到此错误: InternalError: (1267, u"Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '='") 罪魁祸首: نعليقات و 现在我做了一些研究,有人建议我做: SET collation_connection = 'utf8_general_ci'

在django测试期间插入包含unicode字符的行时,我遇到此错误:

InternalError: (1267, u"Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '='")
罪魁祸首:

نعليقات و
现在我做了一些研究,有人建议我做:

SET collation_connection = 'utf8_general_ci'
ALTER DATABASE your_database_name CHARACTER SET utf8 COLLATE utf8_general_ci
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci
我遵循这个示例,在django中执行了以下操作:

cursor = connection.cursor()
cursor.execute('SHOW TABLES')
results = []
for row in cursor.fetchall():
    results.append(row)
cursor.execute(
    'ALTER DATABASE mydb CHARACTER SET utf8mb4 '
    'COLLATE utf8mb4_general_ci;')
for row in results:
    cursor.execute(
        'ALTER TABLE %s CONVERT TO CHARACTER SET utf8mb4 '
        'COLLATE utf8mb4_general_ci;' % (row[0]))
注意:我之所以需要它是mb4,是因为我需要支持表情符号:


生日快乐!タクミ! 是的,utf8mb4是必需的

但是错误与拉丁语1有关。这可能表示连接未设置为utf8


我的paultry笔记表明Django配置有一些字符集并使用unicode选项。请告诉我们您有什么,特别是如果它提供了解决方案的话。

我有这样一个:'OPTIONS':{'charset':'utf8mb4'},