我试图在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):
...
我错过了某个地方的一步吗?
答案 0 :(得分:7)
Harriett,请执行以下操作:
keyring
文件夹
默认情况下在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
的文件夹。
使用以下命令检查是否已加载密钥环插件:-
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';
我希望答案会有所帮助。