Error number: MY-011372; Symbol: ER_KEYRING_FAILED_TO_FLUSH_KEYS_TO_KEYRING; SQLSTATE: HY000
Message: Could not flush keys to keyring
错误说明
MY-011372 (ER_KEYRING_FAILED_TO_FLUSH_KEYS_TO_KEYRING) 是一种MySQL错误,指MySQL在执行对密码存储到加密访问服务(keyring_encrypted_file)时失败。 这是一个系统错误,并以下列消息表示:
“Failed to flush keys to the keyring, please check the keyring_encrypted_file plugin is loaded and the server is able to write to it”.
常见案例
在MySQL5.7、8.0和8.0.18版本中,MySQL更改了密码加密访问(keyring_encrypted_file)的架构,这标志着用户必须在可用的keyring_encrypted_file服务中加载数据,否则会导致出现MY-011372错误。 MySQL在加密密码时使用keyring服务,此时加载keyring_encrypted_file服务会失败,即MY-011372错误出现。
解决方案
要解决此问题,首先要正确启动keyring_encrypted_file服务,然后重新加载MySQL服务,亦或者更新MySQL并重启MySQL服务器。
首先,加载keyring_encrypted_file插件:
“`sql
INSTALL PLUGIN keyring_encrypted_file SONAME ‘keyring_encrypted_file.so’;
“`
然后,重新加载MySQL服务并让MySQL调用相应的存储插件:
“`sql
SET GLOBAL keyring_operations=”keyring_file=keyring_encrypted_file.store”;
“`
最后,更新或重新启动MySQL服务器:
“`sql
systemctl restart mysql.service
“`
如果MySQL无法加密密码到keyring_encrypted_file插件,这时候就可以使用上面的方法来解决MY-011372出现的错误。