安装mysql密钥环插件

时间:2017-07-07 13:36:07

标签: mysql encryption plugins

我试图在MySQL 5.7.18上安装密钥环插件。

我编辑了my.ini文件。它是空白的,所以我添加了以下文本并重新启动了MySQL。

mysql> install plugin keyring_file soname 'keyring_file.dll';

我运行以下命令来安装插件。

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
    ->        FROM INFORMATION_SCHEMA.PLUGINS
    ->        WHERE PLUGIN_NAME LIKE 'keyring%';
+--------------+---------------+
| PLUGIN_NAME  | PLUGIN_STATUS |
+--------------+---------------+
| keyring_file | ACTIVE        |
+--------------+---------------+
1 row in set (0.00 sec)

然后我运行以下sql来检查:

mysql> ALTER TABLE t1 ENCRYPTION='Y';
ERROR 3185 (HY000): Can't find master key from keyring, please check keyring 
plugin is loaded.

但是当我试图改变一个表来使用加密时,我遇到了错误。

def make_nested_loops(depth):
    ...

我错过了某个地方的一步吗?

3 个答案:

答案 0 :(得分:7)

Harriett,请执行以下操作:

  • 检查用户MySQL服务是否运行(例如,NETWORK SERVICE)
  • 在C:/ Program Files / MySQL / MySQL Server 5.7
  • 中创建一个keyring文件夹
  • 明确授予密钥环文件夹的MySQL服务用户权限

默认情况下在Windows上使用keyring_file时,密钥环文件存储在C:/ Program Files / MySQL / MySQL Server 5.7 / keyring / keyring中(我通过在安装插件后运行SHOW VARIABLES LIKE 'keyring%'来确定它并确认它如你所述加载。)

在C:/ Program Files / MySQL / MySQL Server 5.7中创建密钥环文件夹后,右键单击,然后选择属性 - >安全,然后编辑 - >添加等。添加用户后,除了Read&执行,列出文件夹内容,读写。

然后重启MySQL服务,您应该能够无错误地创建加密表。

注意:出于安全原因,您应该返回并删除您认为绝对不需要访问密钥环文件夹的所有用户/组(例如,本地计算机用户)。在Unix上the docs建议单独的mysql用户和组可以访问该文件夹。

答案 1 :(得分:0)

在Windows上,您不需要此行: mysql>安装插件keyring_file soname'keyring_file.dll'; 这是Linux的安装操作(也许可以在Node下运行吗?)

但是请确保您已完整安装MySql-我没有意识到有没有插件dll(及其他内容)的简化版本。 并确保已安装keyring_udf.dll,并且还创建了UDF函数。

所有这些内容在mySql页面上的文档组织得不好,很难遵循。

这是永远执行的任务之一。.设置了密钥,使所有事情都运行了-密钥文件已加密。 然后我使用ALTER TABLE mytable ENCRYPTION ='Y',但是什么也没发生。

我导出表并导出状态“ ENCRYPTION ='Y'”,但不,它没有加密。 mysql日志中没有错误消息,什么也没有。

答案 2 :(得分:0)

我在本地MySQL实例上遇到了完全相同的问题,以下步骤帮助我解决了“加密找不到主密钥,请检查密钥环插件是否已加载。”问题。

  • 在my.ini文件中添加以下行

    early-plugin-load=keyring_file.dll
    
  • keyring位置创建一个名为C:\Program Files\MySQL\MySQL Server 8.0的文件夹。

  • 由于MySQL需要读取该文件夹并在该文件夹中插入密匙环,因此授予了对该文件夹的访问权限。
  • 还授予修改对Program Files中MySQL文件夹的访问权限。
  • 使用以下命令卸载现有的已安装密钥环插件-
  • UNINSTALL PLUGIN keyring_file;
  • 进行上述更改后,重新启动MySQL服务器。
  • 使用以下命令检查是否已加载密钥环插件:-

    show variables like '%keyring%';
    

它应该显示如下输出:-

+--------------------+---------------------------------------------------------+
| Variable_name      | Value                                                   |
+--------------------+---------------------------------------------------------+
| keyring_file_data  | C:/Program Files/MySQL/MySQL Server 8.0/keyring\keyring |
| keyring_operations | ON                                                      |
+--------------------+---------------------------------------------------------+
2   rows in set (0.0024 sec)
  • 现在,您应该可以使用以下命令在表上启用加密:-

    ALTER TABLE city ENCRYPTION='Y';
    

我希望答案会有所帮助。