mysql 오류 1031 수정하는 방법- 'catalog_product_relation'에 대한 테이블 스토리지 엔진에이 옵션이 없습니다?


30

Magento 상점의 새로운 개발 버전을 만들려고합니다. El Capitan을 새로 설치하고 PHP, Mysql (버전 5.7.10) 등으로 실행되는 아파치를 얻었습니다. 또한 phpmyadmin을 실행하고 Magento 용 데이터베이스를 만들었습니다. 그러나 프로덕션 사이트에서 백업을 가져 오려고하면 오류가 발생합니다.

ERROR 1031 (HY000) at line 291001: Table storage engine for 'catalog_product_relation' doesn't have this option

다음 명령으로 터미널을 통해 .sql 파일을 가져 오려고했습니다.

mysql -h localhost -u <user> -D <database> -p < <file>

나는 여기에서 길을 잃었다. Google에서 시간을 종료했지만 해결책을 찾지 못했습니다. 프로덕션 데이터베이스와 동일한 엔진을 사용하고 있습니다.

누구나 아이디어가 있습니까?


내보내기를 어떻게 만들었습니까? 테이블을 여러 번 테스트 한 후 이미 작성된 테이블이 있는지 로컬 데이터베이스를 확인 했습니까? 그렇다면 새 가져 오기를 실행하기 전에 해당 테이블을 모두 삭제하십시오.
Anna Völkl

1
그렇지 않으면 : 아마도 다음과 같은 것입니다 : stackoverflow.com/a/32083169/865443
Anna Völkl

답변:


49

최근에 가져 오기와 동일한 문제가있었습니다.

문제

CREATE TABLE DDL에있는 테이블 옵션 때문일 수 있습니다. ROW_FORMAT=FIXED

SQL 덤프에 이러한 문자열이 있는지 확인하십시오 (예 : magento-db-dump.sql).

cat magento-db-dump.sql | grep '=FIXED'

결과는

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Catalog Product Relation Table';
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Catalog Product To Website Linkage Table';

해결책

ROW_FORMAT=FIXEDCREATE TABLE DDL에서 옵션을 제거 하면 문제가 해결됩니다. 가능한 해결책을 시도해 봅시다.

#1

sed -i 's/ROW_FORMAT=FIXED//g' magento-db-dump.sql

MacOSx에서는 작동하지 않아 다음과 같은 오류가 발생했습니다.

sed : 1 :“magento-db-dump.sql”: 유효하지 않은 명령 코드 m

# 2

sed -i '' 's/ROW_FORMAT=FIXED//g' magento-db-dump.sql

그리고 심지어 이것으로 결과 :

sed : RE 오류 : 잘못된 바이트 시퀀스

# 3 그러나 이것은 MacOSx에서 나를 위해 일했습니다.

LC_ALL=C sed -i '' 's/ROW_FORMAT=FIXED//g' magento-db-dump.sql

( 소스 )


나를 위해 다음 명령이 작동했습니다 :find -name "mysql_dump.sql" | xargs perl -pi -e 's/ROW_FORMAT=FIXED//g'
Wasiq Shahrukh

1. 우분투에서 나를 위해 일했다
Joel Davey

@JoelDavey 예 1 #은 우분투에서 작동합니다. 나는 MacOS를 언급하고 있었다.
MagePsycho

10

MySQL 5.5에서 Magento 데이터베이스 덤프를 MySQL 5.7로 가져 오려고 할 때도 같은 문제가 발생했습니다. 문제는 두 개의 InnoDB 테이블에서 테이블 옵션 ROW_FORMAT = FIXED 인 것 같습니다. 데이터베이스 덤프에서이 옵션을 두 번 제거하면 가져 오기를 오류없이 실행할 수있었습니다.

이 옵션은 적어도 MySQL 5.7에서는 MyISAM 테이블에만 관련 이있는 것 같습니다 .


1
작은 추가 : innodb_strict_mode기본적으로 꺼져 있던 설정과 관련이 있지만 MySQL 5.7.7부터 (MySQL 문서에 따라) 기본적으로 활성화되어 있습니다.
Jisse Reitsma


6

다른 옵션은 innodb_strict_mode = offMySQL 구성 파일 에 추가 하는 것입니다. 무인 설치를 사용하여이 오류가 발생하여 magerunSQL 파일을 편집하지 못했습니다. 프로덕션 환경에서 InnoDb 엄격 모드를 비활성화해야하는지 확실하지 않지만 최소한 개발 환경에서 작동합니다.


1

이 테이블은 InnoDB 일 것으로 예상됩니다. mysql 설정을 확인하여 활성화 / 허용했는지 확인하십시오. 또한 해당 테이블이 존재할 수 있다는 제안도 가능합니다. InnoDB가 작동하는지 확인한 후 모든 테이블을 제거하고 다시 시도하십시오.
제공 한 오류 메시지를 무시하면 InnodDB가 현재 설치에서 준비되지 않았거나 작동하지 않을 것으로 예상됩니다.


방금 mysql을 확인했습니다. 활성화되어 기본 엔진으로 설정됩니다. 테이블이없는 완전히 새로운 데이터베이스로 가져오고 있습니다. @Anna Völkl이 말한 해결책을 시도 할 것입니다. 도움이
되기를 바랍니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.