[server] 알 수 없거나 지원되지 않는 스토리지 엔진 : InnoDB | MySQL 우분투

나는 최근에 이전 LTS Ubuntu에서 Precise로 업그레이드했으며 이제 mysql은 시작을 거부합니다. 시작하려고 할 때 다음과 같이 불평합니다.

╰$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start

그리고 이것은 “/var/log/mysql/error.log”에 표시됩니다 :

120415 23:01:09 [Note] Plugin 'InnoDB' is disabled.
120415 23:01:09 [Note] Plugin 'FEDERATED' is disabled.
120415 23:01:09 [ERROR] Unknown/unsupported storage engine: InnoDB
120415 23:01:09 [ERROR] Aborting

120415 23:01:09 [Note] /usr/sbin/mysqld: Shutdown complete

모든 mysql 디렉토리에 대한 권한을 검사하여 소유권이 있는지 확인하고 이전 ib_logs의 이름을 변경하여 다시 만들 수 있도록했습니다. Google 검색 결과를 2 시간 동안 본 후 지금이 문제가 발생하지 않습니다.



답변

로그를 확인한 후 다음 오류가 발견되었습니다.

[ERROR] Unknown/unsupported storage engine: InnoDB

이 파일들을 제거했습니다 :

rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1

…에서 /var/lib/mysql

이것은 다시 시작한 후 내 문제를 해결했습니다.


답변

실제로 필요한 skip-innodb경우 (사용 사례 : 낮은 메모리 공간) 주석 처리 할 필요는 없습니다. 그러나 InnoDB가 기본 스토리지 엔진 인 경우 default-storage-engine=myisamMyISAM과 같이 대신 사용할 스토리지 엔진을 알려줄 때까지 서버가 시작되지 않습니다 .

따라서 이것을 시도하십시오 :

$ sudo -u mysql mysqld --skip-innodb --default-storage-engine=myisam


답변

MySQL 5.6 이상을 사용 중이고 InnoDB를 비활성화하려면 ” –default-tmp-storage “를 잊지 마십시오. 그렇지 않으면 작동하지 않습니다.

InnoDB를 비활성화하려면 –innodb = OFF 또는 –skip-innodb를 사용하십시오. 이 경우 기본 스토리지 엔진이 InnoDB이므로 –default-storage-engine 및 –default-tmp-storage-engine을 사용하여 기본값을 영구적 및 영구적으로 다른 엔진으로 설정하지 않으면 서버가 시작되지 않습니다. 임시 테이블.

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#option_mysqld_ignore-builtin-innodb

이것을 my.cnf에 추가 할 수 있습니다 :

[mysqld]
innodb=OFF
ignore-builtin-innodb
skip-innodb
default-storage-engine=myisam
default-tmp-storage-engine=myisam

작동하는지 확인하십시오.


답변

mysql 오류 로그를 확인하십시오.

tail -100 /var/log/mysql/error.log

귀하의 로그에 (내 것처럼) 말한 경우 :

InnoDB : 버퍼 풀 초기화, 크기 = 128.0M
InnoDB : mmap (137363456 바이트) 실패; 에르 노 12
[오류] InnoDB : 버퍼 풀에 메모리를 할당 할 수 없습니다

기본 버퍼 크기 인 128M을 사용하기에 메모리가 부족합니다

더 작은 innodb_buffer_pool_size를 지정하도록 행을 추가 하여 구성 파일 /etc/mysql/my.cnf를 편집하십시오 .

# make the buffer pool smaller than 128M since we only have 1 GB of total RAM
innodb_buffer_pool_size = 16M

구성 파일을 저장하고 mysql을 시작하십시오.

sudo service mysql start


답변

2 가지 더 시도하십시오. 1. innodb 버퍼 풀 크기를 줄이십시오. 2. mysql 초기 스크립트를 편집하고 –innodb 옵션을 추가하십시오.

패키지가 버그인지 궁금합니다. 다른 부 버전을 사용해 볼 수 있습니까?

또한 mysql 서버도 업그레이드되었다고 가정합니까? 아마도 그 버전이 깨졌을까요? 정확한 것은 아직 마지막이 아닙니다.


답변

에 사용하는 위치를 삭제하면이 오류가 발생합니다 tmpdir. 최근에을 변경 한 경우 tmpdir유효한 쓰기 가능 위치인지 확인하고 싶을 수 있습니다.


답변