MariaDB / MySQL表加密,无需重新启动

时间:2018-08-23 18:14:47

标签: mysql encryption mariadb

按照this文章中的步骤,我成功设置了静态的MariaDb 10.1.14加密数据。但是我必须重新启动服务器才能使它正常工作。我想让加密工作而无需重新启动。因此,我执行了以下步骤:

  • 安装MariaDb
  • 确保服务正在运行

进行加密所需的ini更改

plugin_load_add = file_key_management

file_key_management_filename = C:\Program Files\MariaDB 10.1\data\myKey.enc

file_key_management_filekey = FILE:<UserProfileFolder>\myPwd.key

file_key_management_encryption_algorithm = aes_cbc

innodb_encrypt_tables = ON

innodb_encrypt_log = ON

innodb_tablespaces_encryption = ON

innodb_encryption_threads = 4

运行sql激活加密插件

install plugin FILE_KEY_MANAGEMENT soname 'file_key_management';

SET GLOBAL innodb_encrypt_tables=ON;

SET GLOBAL innodb_encryption_threads=4;
  • 设置完所有这些之后,加密就没有开始

  • 我发现我必须手动运行alter table语句才能对所有现有表启用加密,而且我不知道如何也可以在不重新启动的情况下对Redolog和Tablespace进行加密,但是如果我重新启动服务,则不必这样做

如果对此提供任何指导,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

感谢您的答复,但我确实发现了一些可以触发表加密而无需重新启动的东西。 当我运行查询以激活加密插件时,向其添加了另一个查询

SELECT count(*) FROM information_schema.innodb_tablespaces_encryption where ENCRYPTION_SCHEME = 1;

此查询具有魔力。这样看来,一旦激活了加密插件,就需要检查information_schema.innodb_tablespaces_encryption,这将使该插件生效。

但是仍然有一个警告,因为innodb_encrypt_log全局变量是只读的,所以它不会对日志进行加密。