Как слои конфигурации набора символов сочетаются друг с другом в MySQL?

У меня есть веб-приложение (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...

Вероятный дубликат stackoverflow.com/questions/1008287/…

Bill Karwin 10.04.2019 20:45

"При преобразовании..." -- Покажите нам используемую команду.

Rick James 19.04.2019 17:54

Я думаю, что использовал это: ALTER TABLE [table_name] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

MIA 19.04.2019 18:17
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
3
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кодировка не имеет значения с конфигурацией сервера, схемы/базы данных или таблицы. Просто по умолчанию каскад из сервера -> база данных-> таблица. Столбцы и соединение, с другой стороны, имеют кодировку и должны быть согласованы, чтобы установить точную настройку базы данных.

И обратите внимание, что «utf8» и «utf8mb4» разные. (utf8mb4 лучше.)

Rick James 19.04.2019 17:55

Другие вопросы по теме