Error number: MY-013769; Symbol: ER_IB_MSG_REENCRYPTED_TABLESPACE_KEY; SQLSTATE: HY000
Message: Tablespace key for %s has been re-encrypted using the latest InnoDB master key. However, we recommend that you rebuild the table for better security.
错误说明
MY-013769是MySQL通用错误代码,Symbol为ER_IB_MSG_REENCRYPTED_TABLESPACE_KEY,SQLState为 HY000,是MySQL数据库中发生的一个常见错误,一般表示一个表空间重新加密失败。当使用INNODB引擎存储数据的时候,表空间的密钥是为了对数据进行加密保护所必须的,MySQL数据库可以创建和修改表空间的密钥,通常当使用SET TABLESPACE_ENCRYPTION命令修改表空间的密钥的时候,会发生这个错误,而且,INNODB引擎存储表空间的时候,把表空间重新加密也会引发这个错误。
常见案例
一般由于KEY或密钥正确性导致此类错误,当用户在使用SET TABLESPACE_ENCRYPTION命令修改表空间的密钥的时候,但由于提供的密钥不正确原因,导致表空间重新加密的过程中出现此类错误。
解决方法
1. 检查当前该表空间的加密密钥是否正确:
首先确认是否使用错误的密钥,一般可以通过配置文件或者是SHOW TABLESPACE_ENCRYPTION语句来查看密钥是否正确。
2. 关闭表空间:
可以采用ALTER TABLESPACE …DISCARD和ALTER TABLESPACE ..IMPORT的方式,先discard表空间,再重新import表空间,以清除任何不正确的状态和加密密钥,然后可以再重新设置正确的密钥,以此保证之后表空间正确重新加密。
3. 重启MySQL服务:
有的场景可以采用重启MySQL服务的办法,使得系统重新变成初始状态,清除任何错误现象,然后重新尝试配置表空间的加密密钥,以保证重新加密的过程更加可靠,例如可以采用 restart mysql 操作。