
# 数据库参数block_encryption_mode一致性检查
检查源数据库和目标数据库的block_encryption_mode参数是否一致，若不一致，可能会导致迁移之后目标数据库不可用，建议将参数设置为一致。
block_encryption_mode 用于设置使用加解密函数时的加密模式，源库和目标库的block_encryption_mode参数不同，会导致加解密函数的查询的结果不同。
例如，设置block_encryption_mode为aes-128-ecb然后执行SELECT HEX(AES_ENCRYPT('test', 'k'))，得到的结果为1521CE1E7B33581DF75BA0DF53F8F6D3；设置lock_encryption_mode为aes-256-ecb，然后执行SELECT HEX(AES_ENCRYPT('test', 'k'))，得到的结果为0201581D9FC84F7BBF136A80E7FC9572，两次的结果不一致。可能会导致源库的加密数据同步到目标库之后，在目标库执行解密无法还原出原始数据值。
#### 不通过原因
源数据库和目标数据库的参数block_encryption_mode设置不一致。
#### 处理建议
- 如果确认未使用相关的加解密函数去操作业务，可以选择跳过该检查项。
- 如果需要修改数据库block_encryption_mode参数，可参考以下操作。
  - 源数据库为本地自建MySQL库
    - 方法一：执行以下命令，然后重启数据库使设置生效。
      ```
      SET GLOBAL block_encryption_mode = '对应的加密模式'
      ```
      
    
    - 方法二：在my.cnf或my.ini配置文件添加一行，然后重启数据库使设置生效。
      ```
      block_encryption_mode = '对应的加密模式'
      ```
      
     
  
  - 源数据库为云上RDS for MySQL实例，可参考[修改实例参数](https://support.huaweicloud.com/usermanual-rds-mysql/rds_configuration.html)修改数据库block_encryption_mode参数。
   
 
