Error number: 3945; Symbol: ER_REQUIRE_ROW_FORMAT_INVALID_VALUE; SQLSTATE: HY000
Message: The requested value %s is invalid for REQUIRE_ROW_FORMAT, must be either 0 or 1.
ERROR 3945 (HY000): ER_REQUIRE_ROW_FORMAT_INVALID_VALUE: The value of innodb_default_row_format requires a row format value(‘REDUNDANT’, ‘COMPACT’ or ‘DYNAMIC’).
这是MySQL的一个错误,当执行带有innodb_default_row_format参数的启动或者设置语句时,将会引发这个错误,因为innodb_default_row_format要求输入的值必须是特定的row format。
1. 使用正确的innodb_default_row_format参数类型,而未添加任何值时:
当在MySQL服务器中设置innodb_default_row_format参数,却没有指定要使用的row format时,服务器将抛出这个错误。
2. 使用错误的innodb_default_row_format参数类型时:
当在MySQL服务器中设置innodb_default_row_format参数,但是指定了不被支持的类型时,服务器将抛出这个错误。
解决方法:
1. 检查未添加任何值时的情况:
只需要为innodb_default_row_format参数提供有效的值,有效的值必须为:'REDUNDANT’,'COMPACT’ 或 'DYNAMIC’中的一个,参数设置重新生效后,错误就可以被修复。例如:
set global innodb_default_row_format=’COMPACT’;
2.检查输入的参数是否有效:
当发现使用了不被支持的参数类型时,重新设置innodb_default_row_format确保参数只有三种类型:'REDUNDANT’,'COMPACT’ 或 'DYNAMIC’,或者关闭MySQL服务器,删除my.cnf文件下的innodb_default_row_format参数,再重新启动MySQL服务使其参数恢复为默认值,错误也会消失。
其他的解决方案可以考虑使用更新的MySQL版本或者正确配置MySQL,来避免发生此错误。