Помогите разобраться со сменой кодировки в БД?
Приветствую.
Надо вставлять смайлики и поэтому надо сменить кодировку в БД, но не все так отрадно. Меняется просто:
При попытке смены некоторых таблиц через phpMyAdmim появляется ошибка: «Указан слишком длинный ключ. Максимальная длина ключа составляет 1000 байт». Создал тестовый сайт на modhost и там из коробки идет нужная кодировка. Решил сравнить мои таблицы и таблицы на modhost. В моих таблицах, где появляется ошибка в некоторых полях установлен VARCHAR == 255, а в тех же полях таблиц на modxhost VARCHAR == 191.
Почему 191, а не 249 или какое другое число?
Если я в таблицах с ошибками смены кодировки измению VARCHAR <= 249, все ли будет работать корректно?
Можно ли вообще таким образом менять кодировку при использовании MODX или надо что-то еще сделать?
Надо вставлять смайлики и поэтому надо сменить кодировку в БД, но не все так отрадно. Меняется просто:
ALTER TABLE
table_name
CONVERT TO CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
При попытке смены некоторых таблиц через phpMyAdmim появляется ошибка: «Указан слишком длинный ключ. Максимальная длина ключа составляет 1000 байт». Создал тестовый сайт на modhost и там из коробки идет нужная кодировка. Решил сравнить мои таблицы и таблицы на modhost. В моих таблицах, где появляется ошибка в некоторых полях установлен VARCHAR == 255, а в тех же полях таблиц на modxhost VARCHAR == 191.
Почему 191, а не 249 или какое другое число?
Если я в таблицах с ошибками смены кодировки измению VARCHAR <= 249, все ли будет работать корректно?
Можно ли вообще таким образом менять кодировку при использовании MODX или надо что-то еще сделать?
Комментарии: 4
Почему 191, а не 249 или какое другое число?Гугл сломался?
При попытке смены некоторых таблиц через phpMyAdmim появляется ошибкаА зачем переводить несколько? Смайлики ведь вставляются в какую-то одну таблицу. Вот в ней и нужно поменять все varchar(255) на varchar(191).
Смайлики ведь вставляются в какую-то одну таблицу.А я не знаю логику работы MODX с БД. Может быть так, что данные из одного поля при какой-то операции будут использоваться в другом поле другой таблицы…
Скорее всего разговор про комменты. Никуда они перетекать не будут. Кроме того, проблема только с полями varchar, для которых созданы индексы. Т.е. можно даже не все поля varchar таблицы поправить, а только индексируемые.
Можно сделать так: Как изменить кодировку для всех таблиц в MySQL
В 3й версии изменили с 191 на 255 PR #15398
В 3й версии изменили с 191 на 255 PR #15398
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.