我的问题与用户nerdgeekdork描述的完全相同:
我尝试以同样的方式设置组件,如mySQL文档中所描述的那样:
https://dev.mysql.com/doc/refman/8.0/en/innodb-data-encryption.html
https://dev.mysql.com/doc/refman/8.0/en/keyring-component-installation.html
和
https://dev.mysql.com/doc/refman/8.0/en/keyring-file-component.html
总之,设立了以下机构:
用mysqld.my在/usr/sbin/中创建root:mysql 0640文件
该文件包含以下内容:
{
"components": "file://component_keyring_file"
}然后,在/usr/lib/mysql/plugin中,我有一个带有root:mysql 0640的文件component_keyring_file.cnf,其中包含
{
"path": "/usr/local/mysql/keyring/component_keyring_file",
"read_only": false
}最后,在/usr/local/mysql/keyring/中有带有root:mysql 0660的文件component_keyring_file。
在重新启动mySQL并以根用户身份登录到mySQL命令行后,发出SELECT * FROM performance_schema.keyring_component_status; I将得到一个空集。
这些是Ubuntu和mySQL的版本:
Ubuntu 20.04.4 LTS
mysql Ver 8.0.30-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))任何帮助都很感激。
发布于 2022-08-20 20:02:04
是AppArmor!
MySQL有一个AppArmor强制配置文件active,它阻止MySQL对component_keyring_file进行更改,因为它不是默认MySQL AppArmor配置文件使用的默认位置"/var/lib/mysql-keyring/“。
作为故障排除的一部分,最初通过设置MySQL配置文件来解决这个问题(sudo sbin /usr/sbin/mysqld)。最后的解决方案是更新MySQL配置文件以使用我指定的路径,然后加载它,例如cat /etc/parmor.d/usr.sbin.mysqld sudo apparmor_parser -a。
https://serverfault.com/questions/1108503
复制相似问题