Swisscom 云上的 Mariadb 配置

Maria DB configuration on Swisscom cloud

我们将使用下一个堆栈:Tomcat8/Java8 buildpacked + ELK + S3 + Maria DB。

我们准备好我们的包,部署过程开始正常,但我们坚持配置 Maria DB。更具体地说,我们至少需要在 Maria (Mysql) 的 my.cnf 文件中设置下一个参数:

lower_case_table_names = 1 transaction-isolation = READ-COMMITTED collation-server = utf8_general_ci character-set-server = utf8

有人知道怎么做吗?因为我们发现唯一可以使用的是 Swisscom 手册中的下一个 -> https://docs.developer.swisscom.com/devguide/services/managing-services.html "Update a Service Instance" 部分,但没有机会找到可以使用的 Maria DB 服务参数。

Swisscom 的 MariaDB 产品是为所有客户共享的 Galera 集群。客户有自己的数据库。

客户无法修改全局 my.cnf 参数。每个客户的全局配置都是相同的。

团队目前正在优化Galera集群,敬请期待,很快默认的MariaDB参数将更适合DBaaS。仍然不能修改全局变量。

客户可以修改session variables

There are two scopes in which system variables exist. Global variables affect the overall operation of the server. Session variables affect its operation for individual client connections. A given system variable can have both a global and a session value.

大多数(不是全部)变量也可以在会话级别定义。

更具体地回答你的问题

您可以在代码中为每笔交易设置首选级别

SET TRANSACTION ISOLATION LEVEL READ-COMMITTED;

变量 lower_case_table_names 只有全局作用域,您不能为每个会话设置它。

Variable Scope Global

> show global variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 0     |
+------------------------+-------+
1 row in set (0.00 sec)

每个table都可以设置字符集和排序规则。参见 Table Character Set and Collation

每个 table 都有一个 table 字符集和一个 table 排序规则。 CREATE TABLEALTER TABLE 语句具有用于指定 table 字符集和排序规则的可选子句。