WordPress 웹 사이트가 포함된 Amazon ec2 마이크로 인스턴스가 있습니다. 어제부터 mysql 데이터베이스가 충돌했습니다.
[ec2-user@ip-xxx-xx-xx-xxx ~]$ sudo service mysqld status
mysqld dead but subsys locked
mysqld를 다시 시작해 보았으나 5분마다 동일한 메시지와 함께 계속 충돌합니다 - "데이터베이스 연결 설정 오류"
이것은 내 데이터베이스 로그 파일이 읽는 내용입니다.
160123 05:44:41 mysqld_safe mysqld restarted
160123 5:44:43 [Note] /usr/libexec/mysql55/mysqld (mysqld 5.5.46) starting as process 7928 ...
160123 5:44:44 [Note] Plugin 'FEDERATED' is disabled.
160123 5:44:46 InnoDB: The InnoDB memory heap is disabled
160123 5:44:46 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160123 5:44:46 InnoDB: Compressed tables use zlib 1.2.8
160123 5:44:46 InnoDB: Using Linux native AIO
160123 5:44:46 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
160123 5:44:46 InnoDB: Completed initialization of buffer pool
160123 5:44:46 InnoDB: Fatal error: cannot allocate memory for the buffer pool
160123 5:44:46 [ERROR] Plugin 'InnoDB' init function returned error.
160123 5:44:46 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160123 5:44:46 [ERROR] Unknown/unsupported storage engine: InnoDB
160123 5:44:46 [ERROR] Aborting
160123 5:44:46 [Note] /usr/libexec/mysql55/mysqld: Shutdown complete
160123 05:44:46 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
이 문제에 대한 해결책을 Google에서 검색했을 때 제가 찾은 일반적인 해결책은 mysqld dead but subsys locked
스왑 파일을 만드는 것이었습니다. 나는 대부분의 솔루션이 제안하는 대로 정확하게 수행했지만 UNIX에 익숙하지 않기 때문에 내가 하고 있는 작업이 올바른지 모르겠습니다.
Wunter가 요청한 대로 내 질문을 결과로 업데이트하세요 free
. 1MB의 스왑 공간이 있습니다.
[ec2-user@ip-xx-xx-xx-xxx /]$ free
total used free shared buffers cached
Mem: 1019452 613820 405632 76 19124 64348
-/+ buffers/cache: 530348 489104
Swap: 1048572 46604 1001968
아니면 이 문제에 대한 다른 해결책이 있습니까? 도와주세요.
답변1
명확성을 위해 메시지 mysqld dead but subsys locked
는 다음과 같습니다.징후,하나도 아니야이유. 즉, mysqld가 충돌하고("죽음") init 시스템의 상태 데이터베이스에 오래된 정보가 있음("그러나 subsys가 잠겨 있음")을 의미합니다. 그것은 당신에게 말하지 않을 것입니다왜상황이 무너졌습니다.
문제는 mysql 서버 로그에 설명되어 있습니다.
160123 5:44:46 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
160123 5:44:46 InnoDB: Completed initialization of buffer pool
160123 5:44:46 InnoDB: Fatal error: cannot allocate memory for the buffer pool
160123 5:44:46 [ERROR] Plugin 'InnoDB' init function returned error.
160123 5:44:46 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160123 5:44:46 [ERROR] Unknown/unsupported storage engine: InnoDB
160123 5:44:46 [ERROR] Aborting
mmap()
이는 InnoDB(스토리지 엔진)가 초기화를 시도할 때 해당 영역 에 128M RAM을 할당하려고 했으나 실패했음을 의미합니다 .
스왑 공간을 추가했다고 명시되어 있습니다. 오류 메시지를 고려하면 이것이 올바른 해결책임에 틀림없지만 아마도 충분한 스왑 공간을 추가하지 않았기 때문에 작동하지 않는 것 같습니다.
스왑 공간 크기를 늘려보세요. 그래도 문제가 해결되지 않으면 를 실행 free
하고 질문을 업데이트하여 해당 명령의 출력을 게시하십시오.