본문 바로가기

프로그래밍/Error

Error Code: 4047 - InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.

 

발생 에러

Error Code: 4047 - InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.

 

 

 

 

에러 발생 원인

  - ROW_FORMAT=COMPRESSED에 대한 쓰기 지원이 제거되어 사용이 불가능 합니다.

    (https://jira.mariadb.org/browse/MDEV-22367)

 

 

 

 

시스템 변수 확인

명령어를 이용하여 시스템 변수에서  innodb_read_only_compressed에 대한 설정을 확인합니다.

 

SHOW GLOBAL VARIABLES LIKE '%read_only%'

 

 

 

 

 

 

 

 

innodb_read_only_compressed의 값을 OFF로 변경 해 주거나 MariaDB의 my.ini 파일에서 skip 옵션을 추가합니다.

 - my.ini 파일은 MariaDB 폴더의 data 폴더 하위에 있습니다.

 

 

 

 

 

 

 

명령어를 입력하여 innodb_read_only_compressed를 OFF 

 

SET GLOBAL innodb_read_only_compressed = OFF

 

 

 

 

MariaDb 폴더 > data 폴더 > my.ini 파일에서 skip 옵션을 추가

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고

 - https://github.com/nextcloud/server/issues/25436

 - https://andjey.info/how-to-fix-nextcloud-4047-innodb-refuses-to-write-tables-with-row_formatcompressed-or-key_block_size/

 - https://dev.mysql.com/doc/refman/5.6/en/innodb-turning-off.html