Alle hier aufgeführten Einstellungen sind richtig, aber hier sind die optimalsten und ausreichendsten Lösungen:
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
character-set-server = utf8
collation-server = utf8_unicode_ci
[client]
default-character-set = utf8
Fügen Sie diese zu /etc/mysql/my.cnf
.
Bitte beachten Sie, dass ich mich für utf8_unicode_ci Art der Sortierung aufgrund des Leistungsproblems.
Das Ergebnis ist:
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
+----------------------+-----------------+
Und das ist der Moment, in dem Sie sich als Nicht-SUPER-Benutzer !
Zum Beispiel ist der Unterschied zwischen einer Verbindung als SUPER- und Nicht-SUPER-Benutzer (natürlich im Falle von utf8_unicode_ci Kollation):
Benutzer mit SUPER priv.:
mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci | <---
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
+----------------------+-----------------+
Benutzer mit nicht-SUPER priv.:
mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
+----------------------+-----------------+
Ich schrieb eine umfassender Artikel (rus), in der Sie ausführlich erklären, warum Sie die eine oder die andere Option wählen sollten. Alle Arten von Zeichensätze y Zusammenstellungen werden berücksichtigt: für den Server, für die Datenbank, für die Verbindung, für die Tabelle und sogar für die Spalte.
Ich hoffe, dass dies und der Artikel zur Klärung unklarer Momente beitragen werden.