Я использую AWS Lightsail MySQL и пытаюсь установить кодировку utf8mb4. Я смог установить некоторые переменные с помощью команды
SET NAMES utf8mb4;
ALTER DATABASE etl_db CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
Результат
+--------------------------+--------------------+
| Variable_name | Value |
+--------------------------+--------------------+
| 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 |
| collation_connection | utf8mb4_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+--------------------------+--------------------+
Но я не могу найти способ изменить character_set_database или остальное. Все онлайн-решения касаются изменения файла конфигурации. Однако, поскольку я использую сервис AWS Lightsail MySQL, у меня нет доступа к файлам. Тогда как я могу изменить кодировку остальных переменных?
кстати, интересно, почему я могу что-то изменить в mysql, в то время как я могу изменить только другие вещи в my.cnf? Могу ли я установить buffer_size в mysql?






Параметры базы данных Lightsail настраиваются с помощью aws-cli.
https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-updating-database-parameters
Вы можете временно изменить некоторые значения, потому что значение этих переменных зависит от соединения SET NAMES изменяет только ваше текущее соединение, а не значение по умолчанию для всех соединений с самим сервером.
ALTER DATABASE etl_db CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
только изменяет значения по умолчанию для этой базы данных. Это значение по умолчанию используется только(?), когда вы выполняете CREATE TABLE без указания кодировки или сопоставления.
Простой обходной путь — всегда указывать кодировку и/или параметры сортировки при создании таблиц. В любом случае это хорошая практика.
Спасибо! но я не уверен, актуален ли документ, в нем говорится об использовании
aws lightsail get-relational-database-parameters --relational-database-name DatabaseName, но нет вариантовget-relational-database-parametersдляaws lightsail. Интересно, вы можете взглянуть на это?