Error number: MY-013285; Symbol: ER_SERVER_RPL_ENCRYPTION_FAILED_TO_STORE_KEY; SQLSTATE: HY000
Message: Failed to store key, please check if keyring is loaded.
错误说明
ER_SERVER_RPL_ENCRYPTION_FAILED_TO_STORE_KEY错误是MySQL5.7或更高版本服务器发出的错误码,当特定的配置项在RPL配置末尾未正确设置时,导致MySQL服务器无法存储关于管理的加密密钥时,会出现这个错误。这个错误的提示及错误码分别是ER_SERVER_RPL_ENCRYPTION_FAILED_TO_STORE_KEY,MY-013285,HY000 。
常见案例
在MySQL5.7版本或更高版本中,增加新的GTID复制的加密机制,让所有的复制动作需要先进行加密,但是要使复制动作成功进行加密,MySQL还需要持久性存储一个该加密密钥,但是当MySQL服务器无法识别管理这个加密密钥相关配置项,将会抛出这个ER_SERVER_RPL_ENCRYPTION_FAILED_TO_STORE_KEY错误。
解决方法
当出现ER_SERVER_RPL_ENCRYPTION_FAILED_TO_STORE_KEY错误时,这体现出MySQL服务端在关于RPL加密配置上有了一些问题,需要手动配置 rpl_encryption_master_key_file 这个配置项,给这个配置指定一个文件,用来存放管理的加密密钥,也可以添加一个配置, rpl_encryption_master_key_password 来设置该文件的访问因子,当这些步骤都完成后,MySQL服务端会持久化存储该加密文件,解决 ER_SERVER_RPL_ENCRYPTION_FAILED_TO_STORE_KEY 错误。