【问题标题】:MariaDB/MySQL table encryption Without restartMariaDB/MySQL 表加密无需重启
【发布时间】:2019-01-30 04:42:48
【问题描述】:

按照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 语句才能对所有现有表启用加密,我不知道如何在不重新启动的情况下对重做日志和表空间执行此操作,但是 我如果我重新启动服务就不必这样做

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

【问题讨论】:

  • 虽然我直觉你不想听到这个:你需要重启你的服务。

标签: mysql encryption mariadb


【解决方案1】:

感谢您的回复,但我确实找到了触发表加密而无需重新启动的东西。 当我运行查询以激活加密插件时,又添加了一个查询

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

这个查询很神奇。所以似乎一旦激活了加密插件,需要检查 information_schema.innodb_tablespaces_encryption 并且这将使插件生效。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-27
    • 2015-05-08
    • 1970-01-01
    • 2018-08-30
    • 2022-08-09
    • 2017-05-16
    • 2018-07-05
    • 2019-05-04
    相关资源
    最近更新 更多