首页 文章

安装mysql密钥环插件

提问于
浏览
3

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

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

[mysqld]
early-plugin-load=keyring_file.dll

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

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

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

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)

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

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

我错过了某个地方吗?

3 回答

  • 7

    哈里特,做以下事情:

    • 检查用户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中的密钥环文件夹后,单击属性 - >安全性,然后编辑 - >添加等 . 添加用户后,除了读取和执行外,还要检查“修改”,列出文件夹内容,读写 .

    然后重新启动MySQL服务,您应该能够创建一个没有错误的加密表 .

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

  • 0

    在Windows上你不需要这一行:mysql> install plugin keyring_file soname'keyring_file.dll';这是Linux的安装操作(也许你可能在Node下运行?)

    但是要确保你有一个完整的MySql安装 - 我没有意识到有没有插件dll(和其他东西)的减少版本 . 并确保安装了keyring_udf.dll,并且还创建了UDF函数 .

    mySql页面上关于所有这些的文档组织严密,难以理解 .

    这是永远持续的任务之一..获得密钥设置,让一切运行 - 密钥文件加密 . 然后我使用ALTER TABLE mytable ENCRYPTION ='Y'但没有任何反应 .

    我导出表和导出状态"ENCRYPTION='Y'"但是没有加密 . mysql日志中没有错误消息,没有 .

  • 0

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

    • 在my.ini文件中添加以下行
    early-plugin-load=keyring_file.dll
    
    • C:\Program Files\MySQL\MySQL Server 8.0 位置创建名为 keyring 的文件夹 .

    • 授予修改对此文件夹的访问权限,因为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';
    

    我希望答案有所帮助 .

相关问题