文档解释
Error number: 3809; Symbol: ER_BINLOG_MASTER_KEY_ROTATION_FAIL_TO_REENCRYPT_LOG; SQLSTATE: HY000
Message: %s. A new binary log master key was generated and will be used to encrypt new binary and relay log files. There may still exist binary or relay log files using the previous binary log master key.
错误说明
错误3809,ER_BINLOG_MASTER_KEY_ROTATION_FAIL_TO_REENCRYPT_LOG,对应的SQLSTATE:HY000,是MySQL在binlog master key转换时出现的一种错误,主要是在解密binlog文件时,由于key滚动带来的影响(称为key rotation),重新加密binlog时失败。
常见案例
典型的出现ER_BINLOG_MASTER_KEY_ROTATION_FAIL_TO_REENCRYPT_LOG错误的情况,是当试图轮换MySQL的binlog master key时,服务器报告在重新加密binlog文件时出现上述错误,如:
ERROR 3809 (HY000): Binlog Master Key rotation fail to reencrypt binlog
日志文件“’: failed to lock Component: binlog-encryption-1; error code: 12; error message: Incorrect key file for table `mysql.slave_master_key_rotation`
解决方法
1.检查MySQL的binlog master key的存储库的状态,确保存在和有效,或者检查如果使用第三方程序进行key管理,确保背景操作正常。
2.此时,当MySQL encrypter初始化时,确保可以正确获取master key以对binlog文件进行解密操作。
3.如果以上步骤仍未解决问题,请确保binlog master key的key rotation的时间周期已正确设置,以及在key轮换期间没有任何binlog写入操作正在进行。
4.如果是MySQL8.0+版本,可以尝试使用FLUSH BINLOG MASTER KEY语句将原来的master key禁用,以重新生成master key信息,并在激活新的master key之前确保与旧的master key数据相匹配,以避免上述错误出现。
5.如果仍未解决,请尝试重启MySQL实例,以及重新申请binlog master key并删除key rotation记录,以重新创建新的key rotation记录。