如何在不更改配置文件的情况下将 mysql character_set_database 设置为 utf8mb4?(因为我无权访问这些文件)
How can I set mysql character_set_database as utf8mb4 without changing the config file?(since I have no access to the files)
我正在使用 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 吗?
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
而不指定字符集或排序规则时使用(?)。
简单的解决方法是在创建表时始终指定字符集 and/or 排序规则。无论如何,这是一个很好的做法。
我正在使用 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 吗?
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
而不指定字符集或排序规则时使用(?)。
简单的解决方法是在创建表时始终指定字符集 and/or 排序规则。无论如何,这是一个很好的做法。