Здесь показаны различия между двумя версиями данной страницы.
linux:command-mysql-encoding [2018/02/20 21:24] |
linux:command-mysql-encoding [2023/03/13 16:08] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ===== Кодировки и mysql или как перевести сервер/базу в нужную кодировку ===== | ||
+ | ====Кодировка сервера==== | ||
+ | По умолчанию, mysql работает в latin1. Исправить это: | ||
+ | <code bash> | ||
+ | sudo leafpad /etc/mysql/my.cnf | ||
+ | </code> | ||
+ | Там: | ||
+ | * в секции client (после строки "['client']") прописываем | ||
+ | <code bash> | ||
+ | default-character-set=utf8 | ||
+ | </code> | ||
+ | * в секции mysqld (после строки "['mysqld']") прописываем | ||
+ | <code bash> | ||
+ | character_set_server=utf8 | ||
+ | collation_server=utf8_unicode_ci | ||
+ | </code> | ||
+ | Для mysql8: | ||
+ | <code bash> | ||
+ | [mysqld] | ||
+ | init_connect='SET collation_connection = utf8mb4_unicode_ci' | ||
+ | character-set-server = utf8mb4 | ||
+ | collation-server = utf8mb4_unicode_ci | ||
+ | [client] | ||
+ | default-character-set = utf8mb4 | ||
+ | </code> | ||
+ | |||
+ | После чего перегружаем mysql: | ||
+ | <code bash> | ||
+ | sudo service mysql stop | ||
+ | sudo service mysql start | ||
+ | </code> | ||
+ | ====Кодировка базы==== | ||
+ | На базе выполняем запрос: | ||
+ | <code sql> | ||
+ | SHOW VARIABLES LIKE '%char%'; | ||
+ | |||
+ | #или так | ||
+ | SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; | ||
+ | |||
+ | </code> | ||
+ | Он может показать, что база, например, в Latin1. Надо ее перевести в utf8. Через pma - Операции - сравнения. Там выбираем требуемую кодировку... и профит. |