%EC%9D%84%20%EC%8B%9C%EC%9E%91%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
XAMPP 설치를 외부 드라이브로 옮기기로 결정했습니다. USB3 3TB Seagate 드라이브입니다. 불행히도 mysql은 시작하고 싶지 않습니다. C 드라이브에 XAMPP를 설치하면 모두 잘 작동하지만 외장 드라이브에 동일하게 설치하면 작동하지 않습니다. 컴퓨터를 여러 번 제거하고 다시 시작하고 컴퓨터에서 mysql의 모든 흔적을 정리했지만 여전히 동일한 오류가 발생합니다.
이것은 새로 설치한 것이며 데이터베이스에 데이터가 없습니다. 오류 로그에서 제안한 것처럼 0바이트 데이터 파일도 삭제했지만 다시 시작하려고 할 때마다 파일이 다시 생성됩니다.
로그 파일 내용은 다음과 같습니다.
131003 11:36:20 [Note] Plugin 'FEDERATED' is disabled.
131003 11:36:20 InnoDB: The InnoDB memory heap is disabled
131003 11:36:20 InnoDB: Mutexes and rw_locks use Windows interlocked functions
131003 11:36:20 InnoDB: Compressed tables use zlib 1.2.3
131003 11:36:20 InnoDB: Initializing buffer pool, size = 16.0M
131003 11:36:20 InnoDB: Completed initialization of buffer pool
InnoDB: Error: space header page consists of zero bytes in data file F:\design\code\mysql\data\ibdata1
131003 11:36:20 InnoDB: Could not open or create data files.
131003 11:36:20 InnoDB: If you tried to add new data files, and it failed here,
131003 11:36:20 InnoDB: you should now edit innodb_data_file_path in my.cnf back
131003 11:36:20 InnoDB: to what it was, and remove the new ibdata files InnoDB created
131003 11:36:20 InnoDB: in this failed attempt. InnoDB only wrote those files full of
131003 11:36:20 InnoDB: zeros, but did not yet use them in any way. But be careful: do not
131003 11:36:20 InnoDB: remove old data files which contain your precious data!
131003 11:36:20 [ERROR] Plugin 'InnoDB' init function returned error.
131003 11:36:20 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
131003 11:36:20 [ERROR] Unknown/unsupported storage engine: InnoDB
131003 11:36:20 [ERROR] Aborting
131003 11:36:20 [Note] f:\design\code\mysql\bin\mysqld.exe: Shutdown complete
나는 이미 이와 같은 다른 주제에서 언급된 몇 가지 제안을 시도했습니다.
innodb_buffer_pool_size = 256M
innodb_log_file_size = 256M
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
여전히 변화가 없습니다. 어떤 도움이라도 주시면 감사하겠습니다.
편집 : 해결됨 (아래 참조)
답변1
좀 더 연구하고, 실험하고, 두통을 겪은 후에(어젯밤부터 이것이 나를 괴롭혔습니다) 해결책을 찾았습니다. 위에서 언급한 변경 사항을 my.ini
파일 에 추가하는 것 외에도
innodb_buffer_pool_size = 256M
innodb_log_file_size = 256M
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
my.ini
또한 파일 끝에 이 줄을 추가했습니다.
innodb_flush_method=normal
이제 모든 것이 잘 작동합니다. 이는 2TB 이상의 하드 드라이브의 대형 섹터 크기와 관련된 버그인 것 같습니다. 이 솔루션의 소스는 다음에서 찾을 수 있습니다.이 페이지.
답변2
백엔드를 에서 로 변경하세요 MyISAM
. InnoDB
없이 mysql
컴파일되었습니다.InnoDB