djangoがmysqlに中国語の文字を書き込みエラーを解決しました。


以前django+mysqlを使って作られたサイトですが、データベースに中国語の文字を書き込むときは間違いがあります。settingsファイルの修正とデータテーブルの文字セットの変更を試みました。最後に、mysqlの文字セットを変更した後、データベースを再構築する必要があります。
ここで完全に解決策を記録します。
まずmysqlの文字セットを変更します。
uuntuの下で/etc/mysql/my.cnfを見つけます。   最後に追加
[mysqld]
character-set-server=utf 8
[client]
default-character-set=utf 8
[mysql]
default-character-set=utf 8
mysql-h local Host-u root-p命令でmysql命令に入る行です。
そしてshow variables like'character_を使います。set%文字セットの設定を確認してください。client server databaseがutf 8で成功しました。
しかし、私のdjangoは依然として間違っています。データベースを再構築するしかないです。もしデータベースファイルが多くないなら、データベースの再構築作業量はとても小さいです。
まず新しいデータベースを作成します。このときデフォルトのコードフォーマットはutf 8です。中国語、
そしてsettings.pyのdatabase項目のnameを新しいデータベース名に変更します。
最後にデータベースの移動を実行すればいいです。manage.pyフォルダのディレクトリを含めて。
python manage.py makemigrations
python manage.py migrate
ユーザーテーブルとmodleで指定されたテーブルを作成できます。テーブル構造は元と同じです。データを新しいテーブルにコピーすればいいです。
補足知識:django文字セットの漢字入力後のmysqlデータベースのエラーを解決する【慎重に使う】
解決策:
mysqlデータベースを起動します。
その後:mysql-u root-p
データベースの文字セットshow variables like'character'を表示します。
character-set-serverとcharacter_を発見しました。setdatabaseの値はlatin 1です。
ソリューション:
MySQLフォルダ下のmy.iniプロファイルを編集します。
[mysqld]にcharacter-set-server=utf 8を追加します。
systemtectl restort mysql再起動MySQL Serverを調べてみると、すでにutf 8であることが分かりました。
drop database【追加済みデータベース】そしてcreate database【新データベース】
問題解決!
この方法は簡単で乱暴です。慎重に使います。データベースの中のファイルはまだ書き換えなければならなくて、比較的に面倒で、しかしデータベースを創立した後に、1本のデータを添加することができて、カスタムのdjangoグラフィックスのインターフェイスを利用して、更にデータを追加するのもできます。
以上の問題を解決しました。djangoがmysqlに中国語の文字を書き込みました。問題は小編が皆さんに共有している内容です。参考にしてもらいたいです。どうぞよろしくお願いします。