web-dev-qa-db-ja.com

外付けドライブにインストールした後、mysql(xampp)を起動できません

XAMPPインストールを外付けドライブに移動することにしました。 USB3 3TBSeagateドライブです。残念ながら、mysqlは起動したくありません。 XAMPPをCドライブにインストールするとすべて正常に動作しますが、外付けドライブで同じようにインストールすると動作しません。コンピューターを何度もアンインストールして再起動し、コンピューターからmysqlのすべてのトレースをクリーンアップしましたが、それでも同じエラーが発生します。

これは新規インストールであり、データベースにデータがありません。エラーログが示唆するように、ゼロバイトのデータファイルも削除しましたが、再起動しようとするたびにファイルが再度作成されます。

これはログファイルの内容です。

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

まだ変化はありません。どんな助けでもいただければ幸いです。

編集:解決済み(以下を参照)

4
Klikerko

さらに調査、実験、頭痛(これは昨夜から私を悩ませています)の後、私は解決策を見つけました。上記の変更を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以上のハードドライブの大きなセクターサイズに関連するバグのようです。このソリューションのソースは このページ にあります。

3
Klikerko

バックエンドをMyISAMからInnoDBに変更し、mysqlInnoDBなしでコンパイルします

0
PersianGulf