首页 > 解决方案 > 如何在不更改配置文件的情况下将 mysql character_set_database 设置为 utf8mb4?(因为我无权访问这些文件)

问题描述

我正在使用 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 中更改其他内容?我可以在 mysql 中设置 buffer_size 吗?

标签: mysqlvariablesencodingconfigurationutf8mb4

解决方案


Lightsail 数据库参数可使用 aws-cli 进行配置。

https://lightsail.aws.amazon.com/ls/docs/en/articles/amazon-lightsail-updating-database-parameters

您可以临时更改一些值,因为这些变量的值是特定于连接的SET NAMES,只会更改您当前的连接,而不是与服务器本身的所有连接的默认值。


推荐阅读