나는 최근에 이전 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=myisam
MyISAM과 같이 대신 사용할 스토리지 엔진을 알려줄 때까지 서버가 시작되지 않습니다 .
따라서 이것을 시도하십시오 :
$ 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
유효한 쓰기 가능 위치인지 확인하고 싶을 수 있습니다.