изменить mysql формат файла и параметры сортировки - PullRequest
1 голос
/ 11 февраля 2020

Мне нужно применить этот параметр к MariaDB 5.5. Безопасно ли это делать на работающей БД? Будет ли это влиять только на новые базы данных, или может произойти сбой старой БД на Latin1 / nonUTF8? Конечно, я буду запускать полное резервное копирование, но просто хочу узнать о других опыт.

[client]
default-character-set = utf8mb4

[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix

character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-character-set-client-handshake

[mysql]
default-character-set = utf8mb4

Ответы [ 2 ]

2 голосов
/ 11 февраля 2020

Я сделал именно это, чтобы правильно проанализировать эмодзи. У меня не было проблемы, и я сделал это вживую (вместе с резервной копией!).

Мой голос, исходя из моего опыта, должен продолжаться.

0 голосов
/ 19 февраля 2020

Обратите внимание на «default-» - это означает, что оно не повлияет на уже существующее.

Существует нечто большее, чем вы сделали, чтобы сделать Emojis возможным. См. «Лучшие практики» в Проблемы с символами UTF-8; я вижу не то, что хранил

Как и предполагал мех, существующих таблиц должно быть ALTERed, если столбцы еще не CHARACTER SET utf8mb4.

Кроме того, чтобы Barracuda, file_per_table и large_prefix вступили в силу для таблицы, вы должны сделать ALTER. Когда закончите, используйте SHOW CREATE TABLE как частичное изменение, изменения вступили в силу. ALTER TABLE t CONVERT TO utf8mb4;, вероятно, самый простой.

Поскольку вы используете 5.5 или 5.6, есть еще вещи, которые необходимо исправить для обработки индексации VARCHAR(255); см http://mysql.rjweb.org/doc.php/limits#767_limit_in_innodb_indexes

...