AES_加密是否会导致Mysql中的复制出现问题?

AES_加密是否会导致Mysql中的复制出现问题?,mysql,replication,Mysql,Replication,我有一个Mysql主复制对。(我将第二个保持为只读模式,以避免索引冲突。) 在我的主数据库上,我在错误日志中收到以下消息: 语句不安全,因为它使用的系统函数可能返回 从机上的值不同。语句:插入字段_数据 (字段id、记录id、加密数据、字段单位类型键)值 ('26'、'1753149',AES_ENCRYPT('COVID',UNHEX(SHA2('17531491796432333532720',256)),'NULL') AES_ENCRYPT或SHA2是否以某种方式依赖于时间?为什么复制服

我有一个Mysql主复制对。(我将第二个保持为只读模式,以避免索引冲突。)

在我的主数据库上,我在错误日志中收到以下消息:

语句不安全,因为它使用的系统函数可能返回 从机上的值不同。语句:插入字段_数据 (字段id、记录id、加密数据、字段单位类型键)值 ('26'、'1753149',AES_ENCRYPT('COVID',UNHEX(SHA2('17531491796432333532720',256)),'NULL')


AES_ENCRYPT或SHA2是否以某种方式依赖于时间?为什么复制服务器上的此插入不能保存完全相同的数据?

这是MySQL 5.6.17以来的记录行为:

从MySQL 5.6.17开始,使用AES_ENCRYPT()或AES_DECRYPT()的语句对于基于语句的复制是不安全的,并且不能存储在查询缓存中

这不是因为时间依赖性,而是因为行为取决于新引入的系统变量:

此变量控制基于块的算法(如AES)的块加密模式。它会影响AES_ENCRYPT()和AES_DECRYPT()的加密

如果服务器上的设置不同,则查询将插入不同的数据。如果没什么不同,你就没事了。但由于这是您的责任,因此您会收到警告(基于语句的)复制无法确保这一点