我需要加密DB表的某些列。通过这些链接,遵循以下步骤:
In /etc/my.cnf
[mysqld]
plugin-load-add = file_key_management
file_key_management_filename = /etc/mysql/encryption/keyfile.enc
file_key_management_filekey = /etc/mysql/encryption/keyfile.key
file_key_management_encryption_algorithm = AES_CTR
重新启动mysql
service mysqld restart
但我无法看到插件的添加。
执行以下mysql命令:
MariaDB [TestEncr]> CREATE TABLE table1 (col1 INT NOT NULL PRIMARY KEY, secret CHAR(200)) ENGINE=InnoDB ENCRYPTED=YES;
ERROR 1005 (HY000): Can't create table `TestEncr`.`table1` (errno: 140 "Wrong create options")
MariaDB [TestEncr]> install soname 'file_key_management';
ERROR 2 (HY000): Cannot decrypt /etc/mysql/encryption/keyfile.enc. Wrong key?
不明白是怎么回事?
发布于 2019-08-14 21:09:29
如果我正确地理解了文档,您需要在file_key_management_filekey
的值前加上文字FILE:
,以便将值的后续部分解释为包含密码的文件路径,而不是被解释为实际的密码。所以在你的情况下应该是:
file_key_management_filekey = FILE:/etc/mysql/encryption/keyfile.key
https://dba.stackexchange.com/questions/245289
复制相似问题