安装mysql密钥环插件

安装mysql密钥环插件,mysql,encryption,plugins,Mysql,Encryption,Plugins,我试图在MySQL 5.7.18上安装keyring插件 我编辑了我的.ini文件。它是空的,所以我添加了以下文本并重新启动了MySQL [mysqld] early-plugin-load=keyring_file.dll 我运行以下命令来安装插件 mysql> install plugin keyring_file soname 'keyring_file.dll'; 然后,我运行以下sql进行检查: mysql> SELECT PLUGIN_NAME, PLUGIN_STA

我试图在MySQL 5.7.18上安装keyring插件

我编辑了我的.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.

我在什么地方漏了一步吗?

哈里特,请执行以下操作:

  • 检查运行MySQL服务的用户(例如,网络服务)
  • 在C:/Program Files/MySQL/MySQL Server 5.7中创建一个
    keyring
    文件夹
  • 显式授予MySQL服务用户对keyring文件夹的权限
默认情况下,在Windows上使用keyring_文件时,keyring文件存储在C:/Program Files/MySQL/MySQL Server 5.7/keyring/keyring中(我是在安装插件并确认其加载后运行
SHOW VARIABLES,如“keyring%”
确定的)

在C:/Program Files/MySQL/MySQL Server 5.7中创建keyring文件夹后,右键单击,然后单击属性->安全性,然后单击编辑->添加等。添加用户后,除了读取和执行外,请选中“修改”,列出文件夹内容,并进行读取和写入

然后重新启动MySQL服务,您应该能够创建一个加密表而不会出错


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

在windows上,您不需要此行: mysql>安装插件keyring_文件soname'keyring_file.dll'; 这就是Linux的安装操作(如果在Node下运行,可能会这样做?)

但是请确保你已经安装了完整的MySql——我没有意识到有一些精简版本没有插件DLL(和其他东西)。 并确保已安装keyring_udf.dll,并且已创建udf函数

mySql页面上所有这些内容的文档组织得很糟糕,很难理解

这是一项永无止境的任务。。设置了密钥,运行了所有东西-密钥文件被加密。 然后我使用altertable mytable ENCRYPTION='Y',但什么也没发生


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

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

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

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

  • 授予对此文件夹的修改访问权,因为MySQL需要读取该文件夹并在该文件夹中插入keyring
  • 还授予对程序文件内MySQL文件夹的修改访问权
  • 使用以下命令卸载现有已安装的keyring插件-
  • 卸载插件keyring_文件
  • 进行上述更改后,重新启动MySQL服务器
  • 使用以下命令检查keyring插件是否已加载:-

    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';
    

我希望答案有帮助。

谢谢你提供的信息。在授予keyring文件夹的权限后,它工作了。太棒了!既然我的答案对你有用,你能不能“接受”正确的答案?@Harriet Xing我也有同样的问题。我已经给出了所有的许可,但仍然没有工作…Shubham-我有类似的问题-不应该有“keyring_file.dll”文件吗?我安装Mysql时没有安装它,但我们从哪里获得它?在我的“C:\Program Files\Mysql\Mysql Server 5.7\lib\plugin”文件夹中有一个keyring_file.dll。文件夹“C:\Program Files\MySQL\MySQL Server 5.7\keyring”中还有一个生成的keyring文件。您能分享更多详细信息吗1)您在哪里找到ini文件的。2) 你是单独下载dll的吗?(3) 运行mysqld会抛出错误,如“mysqld:Can't change dir to'D:\Program Files\MySQL\MySQL Server 5.7\data\”(错误代码:2-没有这样的文件或目录)”(4)以获得MySQL>提示:您安装了mysl shell吗?我也在寻找加密表,但卡住了。。。