にUTF8から照合私は現在、以下の設定でMySQLデータベースを持っている:MySQLの変更データベース+テーブルは、文字セット&UTF8mb4
character_set_client: utf8
character_set_connection: utf8
character_set_database: utf8
character_set_filesystem: binary
character_set_results: utf8
character_set_server: latin1
character_set_system: utf8
collation_connection: utf8_general_ci
collation_database: utf8_general_ci
collation_server: latin1_swedish_ci
私は、データベース内の絵文字のと(中国語のような)他の言語をサポートしたいです。現在のところ、これは動作していません、それらの文字は自動的に?
に変換されます。
charset
& collation
utf8mb4(_general_ci)
のテストデータベースを作成し、同じ設定のテーブルを作成しました。 Emojisはここで働きます。ただし、データベース設定をutf8(_general_ci)
に変更してテーブルをutf8mb4(_general_ci)
のままにしておくと、emojisはまだ動作していますが、これはメインデータベースでは当てはまりません。
私のメインデータベースの設定をcharset
+ collation
utf8mb4(_general_ci)
に変更しても、それでも問題ありませんか?
データベースアクセスの場合は、character_set_connection
やcollation_connection
のように変更する必要がありますか? 私のJavaScriptサーバーでは、接続はutf8
と設定されていますが、これはutf8mb4
である必要があります。
すべての最新のutf8(_general_ci)
データは、utf8mb4(_general_ci)
に変更するとそのまま保持されますか?
おかげutf8mb4に、すべてのchar /テキスト列を変換するには
。これが私の必要なものです。それから別のことがあります。データベースは2つの別々のサーバで動作し、 'master-master replication'を使って同期します。私は列の設定が両方で変更されているが、テーブル設定では変更されていないことがわかりました。両方のデータベースでこれを行うのは大丈夫ですか、それとも何か問題がありますか?ありがとう! – JeroenJK
@ JeroenJK - サーバーが同一ではないことは奇妙に思えます。正確にどのようなコマンドを実行しましたか?文字セット/照合を指定せずに列を後で追加すると、それぞれのマシンに異なる_DEFAULTをピックアップする場合に問題が発生する可能性があります。 –