21

私が見ている

OperationalError (1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")

私の変数のいくつかはUTF8文字列のようです

'名前':'p \ xc7 \ x9d \ xca \ x87 \ xc9 \ x9f \ xc4 \ xb1 \ xc9\xa5sバッジ'

これは構成の問題ですか?もしそうなら、どうすればそれを解決できますか?すべてをUnicodeで処理したいと思います(私は思います)。

4

3 に答える 3

45

シェルを介してテーブルのエンコーディングを変更できます。

$ manage.py shell
>>> from django.db import connection
>>> cursor = connection.cursor()
>>> cursor.execute('SHOW TABLES')
>>> results=[]
>>> for row in cursor.fetchall(): results.append(row)
>>> for row in results: cursor.execute('ALTER TABLE %s CONVERT TO CHARACTER SET utf8 COLLATE     utf8_general_ci;' % (row[0]))

https://mayan.readthedocs.org/en/v0.13/faq/index.html

于 2012-03-12T14:26:18.423 に答える
12

データベースはデフォルトでlatin1_swedish_ciに設定されているため、すべてのutf8文字を受け入れることはできません。utf8_general_ciを使用するには、MySQLデータベーステーブルの構成を変更する必要があります。これに関する優れたブログ投稿(ツールへのリンク付き)は、MySQLPerformanceBlogにあります

于 2009-07-02T14:17:40.420 に答える
1

以下のように、django設定ファイルにOPTIONSを追加します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {'charset': 'utf8mb4'},
        'NAME': 'sarpanchDb',
        'USER': 'root',
        'PASSWORD': 'tiger',
        'HOST': 'localhost',
        'PORT': '',
    },
}

また、/ etc / mysql/my.cnfファイルで変更を行う必要があります

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

次に、mysqlサービスを再起動します

sudo service mysql restart

次のクエリを使用して、機能したかどうかをクロスチェックします

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR 
Variable_name LIKE 'collation%';

次の出力が得られるはずです

+--------------------------+--------------------+
| 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               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+
10 rows in set (0.00 sec)
于 2019-05-02T17:23:18.227 に答える