2017-07-07 183 views
3

我試圖在MySQL 5.7.18上安裝keyring插件。安裝mysql keyring插件

我編輯了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. 

我錯過了某個步驟?

回答

4

哈里特,請執行下列操作:

  • 檢查MySQL服務形式運行的用戶(例如,網絡服務)
  • 在C上創建一個keyring文件夾:/ Program Files文件/ MySQL的/ MySQL服務器5.7
  • 使用keyring_file時明確授予的鑰匙圈夾

默認情況下,Windows上的MySQL服務的用戶權限,密鑰環文件存儲在C:/程序文件s/MySQL/MySQL服務器5.7/keyring/keyring(我確定這是通過在安裝插件並確認其加載後運行SHOW VARIABLES LIKE 'keyring%')。

在C:/ Program Files/MySQL/MySQL Server 5.7中創建密鑰環文件夾後,右鍵單擊,然後選擇屬性 - >安全性,然後編輯 - >添加等。一旦添加了用戶,除了檢查「修改」讀取&執行,列出文件夾內容,讀取和寫入。

然後重新啓動MySQL服務,你應該可以創建一個沒有錯誤的加密表。

注意:出於安全原因,您應該返回並刪除您認爲絕對需要訪問密鑰環文件夾(例如本地計算機用戶)的所有用戶/組。在Unix上,the docs建議僅mysql用戶和組有權訪問該文件夾。

+0

感謝您的信息。它在授予密鑰環文件夾的權限後工作。 –

+0

太棒了!既然我的答案對你有用,請你「接受」答案是否正確? – Chirael