2009-12-05 8 views
2

방금 ​​내 사이트의 데이터베이스를 살펴보고 모든 테이블이 MyISAM (InnoDB로 사용됨)으로 변환되었음을 알게되었습니다.Missing InnoDb Engine

InnoDB는 BerkeleyDB, Federated 및 기타와 함께 누락 된 것으로 보입니다.

몇 달 전 MySql 5.0을 5.1.38로 업그레이드했습니다. InnoDB가 업그레이드 후에 설치되지 않았다는 것을 알아 채지 못했을 것이라고 상상할 수는 없지만, 업그레이드 이후에 그렇게되었을 수도 있습니다. 몇 10 기가 바이트 테이블을 자동으로 MyISAM으로 변환하는 데 어떤 중단 시간에 대해 듣지 않고 매우 가능성이 보인다.

상관없이, mysql 시스템 변수 have_innodb는 NO로 설정됩니다. 단순히 YES로 변경하거나 InnoDB가 설치에 없다는 것을 의미합니까?

답변

1

SHOW ENGINES의 필드가 "아니오"이면 컴파일되지 않았 음을 의미합니다. 서버를 다시 컴파일하고 innodb plugin을 컴파일하고로드하거나 서버 바이너리를 가져와야합니다.

1

테이블을 MyISAM에서 InnoDB로 변환하기 위해 단순히 mysql 시스템 변수를 YES로 설정할 수는 없다.

ALTER TABLE t1 ENGINE=InnoDB; 

은 InnoDB의 지원도 해제 당신이 만드는 테이블 문에 ENGINE = InnoDB의를 사용하는 것입니다 경우, 테이블은 보통의 MyISAM MySQL을위한 기본 스토리지 엔진을 사용합니다.

2

업그레이드 중에 InnoDB 매개 변수가 변경되었을 수 있습니까? MySQL의 포럼에서 얻은 조언은 비슷한 상황에서 나를 도왔다. http://forums.mysql.com/read.php?22,397052,408970

요약하면 : MySQL 데몬을 중지하고 datadir에서 ib_logfile*을 삭제하고 MySQL을 다시 시작합니다.

0

innodb 로그 파일 [01]이 손상된 경우 일 수도 있습니다. 이 경우 엔진이 사용 안 함으로 표시되고 표가 ISAM으로 표시됩니다. 로그에 언급 될 것입니다.