У меня есть веб-приложение (Rails), которое настроено на использование utf8 для кодирования. Моя база данных имеет конфигурацию для набора символов, например:
show variables like 'char%';
"character_set_client" "utf8mb4"
"character_set_connection" "utf8mb4"
"character_set_database" "latin1"
"character_set_filesystem" "binary"
"character_set_results" "utf8mb4"
"character_set_server" "latin1"
"character_set_system" "utf8"
Что мне нужно сделать, так это преобразовать столбцы и таблицы (и, возможно, позже базу данных) в другой character set
.
1- В моей настройке мое приложение является клиентом в терминологии MySQL?
2- При преобразовании столбца/таблицы/базы данных, что я должен изменить, чтобы не получить ошибку:
Mysql2::Error: Illegal mix of collations...
"При преобразовании..." -- Покажите нам используемую команду.
Я думаю, что использовал это: ALTER TABLE [table_name] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Кодировка не имеет значения с конфигурацией сервера, схемы/базы данных или таблицы. Просто по умолчанию каскад из сервера -> база данных-> таблица. Столбцы и соединение, с другой стороны, имеют кодировку и должны быть согласованы, чтобы установить точную настройку базы данных.
И обратите внимание, что «utf8» и «utf8mb4» разные. (utf8mb4 лучше.)
Вероятный дубликат stackoverflow.com/questions/1008287/…