mysql:证书轮换时的热重新加载

mysql:证书轮换时的热重新加载,mysql,ssl-certificate,Mysql,Ssl Certificate,当使用mysql时,我们可以设置mysql来使用ssl证书加密与数据库的连接。但是,当证书过期时,我们将不得不续订证书并上载另一个证书。从文档中看,ssl证书变量似乎不是动态的,那么,一旦我们在文件系统上更改了新证书,有没有办法让mysql提取新证书(假设我们保持证书的名称和位置以及密钥不变)不必重新启动mysql服务?好吧,我想这是我应该阅读手册的地方。显然,这种能力是不可靠的 从MySQL 8.0.16开始,系统变量为 动态和可在运行时设置,而不仅仅是在启动时。如果改变 使用SET GLOB

当使用mysql时,我们可以设置mysql来使用ssl证书加密与数据库的连接。但是,当证书过期时,我们将不得不续订证书并上载另一个证书。从文档中看,ssl证书变量似乎不是动态的,那么,一旦我们在文件系统上更改了新证书,有没有办法让mysql提取新证书(假设我们保持证书的名称和位置以及密钥不变)不必重新启动mysql服务?

好吧,我想这是我应该阅读手册的地方。显然,这种能力是不可靠的

从MySQL 8.0.16开始,系统变量为 动态和可在运行时设置,而不仅仅是在启动时。如果改变 使用SET GLOBAL,新值仅在服务器重新启动之前应用。如果 使用“设置持久化”进行更改后,新值也将保留到后续的 服务器重新启动。参见第13.7.6.1节,“设置变量语法 分配”。但是,对这些变量的运行时更改不起作用 如前所述,会立即影响新连接的TLS上下文 本节后面部分

以及MySQL 8.0.16中的更改,该更改允许运行时更改 TLS上下文相关的系统变量,服务器启用运行时 更新用于新连接的实际TLS上下文。这 例如,该功能可能有助于避免重新启动MySQL 已运行很长时间的服务器,其SSL证书已过期 过期了

要创建初始TLS上下文,服务器将使用 与上下文相关的系统变量在启动时具有。揭露 在上下文值中,服务器还初始化一组相应的 状态变量。下表显示了以下系统变量: 定义TLS上下文和相应的状态变量 公开当前活动的上下文值