Error number: MY-013842; Symbol: ER_PERSISTED_VARIABLES_MASTER_KEY_NOT_FOUND; SQLSTATE: HY000
Message: Could not find master key %s in keyring
Error number:MY-013842 ; Symbol:ER_PERSISTED_VARIABLES_MASTER_KEY_NOT_FOUND; SQLSTATE: HY000
错误说明:
当用户尝试设置持久变量时,MySQL内部错误MY-013842(ER_PERSISTED_VARIABLES_MASTER_KEY_NOT_FOUND)就会发生。 这表明MySQL正在做的尝试失败了,因为没有主密钥可以用于存储持久变量值。
此错误一般与MySQL 8.0 中的持久用户变量相关,这是MySQL在8.0版本中新增的功能,该功能的目的是保存用户变量的值,直到重启MySQL为止。
此外,要应用持久变量,必须使用–persisted-variables-master-key参数,以允许MySQL使用指定的环境变量。
在MySQL 8.0中执行以下操作时,将发生ER_PERSISTED_VARIABLES_MASTER_KEY_NOT_FOUND错误:
SET @x = 1;
如果上面的操作不带–persisted-variables-master-key参数执行,则会引发此错误消息。
解决方法:
解决此错误的最简单方法是使用–persisted-variables-master-key参数。 因此,之前示例中的命令应该更新为:
SET @x = 1;–persisted-variables-master-key=
其中应替换为实际主密钥值。
此外,您还可以通过同时使用–persisted-variables-encryption-algorithm = ‘algorithm_name’以及–persisted-variables-encryption-key = ”参数来更改加密参数,用于存储持久变量数据(其中algorithm_name是要应用的加密算法,而encryption_key_value是用于加密的密钥值)。
重要提示:在更改安全设置时,一定要务必谨慎行事,以确保持久变量的安全性!