
# 数据库参数innodb_strict_mode一致性检查
检查源数据库和目标数据库的innodb_strict_mode参数是否一致性，若不一致，可能会导致任务失败，建议将参数变为一致。
数据库参数innodb_strict_mode用来设置是否开启严格检查模式。innodb_strict_mode=ON，表示执行时使用严格模式，当创建表（CREATE TABLE）、更改表（ALTER TABLE）和创建索引（CREATE INDEX）语句有错误时，不会触发警告信息，而是直接抛出错误。innodb_strict_mode=OFF，表示执行时使用非严格模式，即宽松的语法检查，遇到错误的语法时会使用默认的语法去替换。例如，MySQL 5.7.34版本，如果设置了innodb_strict_mode=ON，然后再执行建表语句CREATE TABLE t1(c1 int, c2 varchar(32)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED，会有报错Table storage engine for 't1' doesn't have this option。
如果在DRS任务中，源数据库innodb_strict_mode=OFF，目标数据库的innodb_strict_mode=ON，当执行的DDL有语法错误时，在源库执行不会报错，同步到目标库的时候会报错，导致任务失败
#### 不通过原因
源数据库和目标数据库的innodb_strict_mode参数不一致。
#### 处理建议
修改源数据库或者目标数据库的innodb_strict_mode参数，使其保持一致。
- 如果为自建的MySQL数据库，可通过命令行方式修改。
  1. 通过以下命令查看参数值。
     ```
     SHOW VARIABLES LIKE "innodb_strict_mode";
     ```
     
  
  2. 使用命令修改参数。
     ```
     SET GLOBAL innodb_strict_mode = <value>;
     ```
     如果想将该选项关闭，则可以将\<value\>设置为0；若想打开严格模式，则将\<value\>设置为1。
     
   
- 如果为RDS for MySQL实例，可通过修改数据库innodb_strict_mode参数实现，详情请参考[修改实例参数](https://support.huaweicloud.com/usermanual-rds-mysql/rds_configuration.html)章节。
 
更多其他类型数据库修改innodb_strict_mode的方法，可参考对应数据库的使用说明。
