How can I fix the error preventing MySQL data migration from a dead HD?

1

I'm trying to restore a MySQL database from a dead HD. I've followed the instructions from here about copying the old files: https://stackoverflow.com/questions/40479395/export-mysql-datatabase-from-a-dead-hard-drive-xampp but I'm getting the following message in my error log:

170114 22:21:07 [Note] Plugin 'FEDERATED' is disabled.
170114 22:21:07 InnoDB: The InnoDB memory heap is disabled
170114 22:21:07 InnoDB: Mutexes and rw_locks use Windows interlocked functions
170114 22:21:07 InnoDB: Compressed tables use zlib 1.2.3
170114 22:21:07 InnoDB: Initializing buffer pool, size = 38.0M
170114 22:21:07 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file .\ib_logfile0 is of different size 0 56623104 bytes
InnoDB: than specified in the .cnf file 0 19922944 bytes!
170114 22:21:07 [ERROR] Plugin 'InnoDB' init function returned error.
170114 22:21:07 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
170114 22:21:07 [ERROR] Unknown/unsupported storage engine: INNODB
170114 22:21:07 [ERROR] Aborting

170114 22:21:07 [Note] C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld.exe: Shutdown complete

The old database was 5.5.40 and the new one is 5.5.54, because I've been unable to successfully install the exact same version (the download links that the installer needs no longer work). Is the error simply the size as specified in the .cnf file or is that masking something else?

CJ Dennis

Posted 2017-01-14T11:47:41.420

Reputation: 805

Look at this post and look at wombles answer as well as the resolution section in the question: http://serverfault.com/questions/104014/innodb-error-log-file-ib-logfile0-is-of-different-size... hopefully this will fix your issue.

– Pimp Juice IT – 2017-01-14T17:40:58.017

Answers

0

Thanks to @ITSolutions, I've solved the problem.

I found my cnf file at C:\Program Files\MySQL\MySQL Server 5.5\my.ini (the location can sometimes be different).

I made the following changes (note the commented-out original values) and restarted the MySQL service.

# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
# row data. The bigger you set this the less disk I/O is needed to
# access data in tables. On a dedicated database server you may set this
# parameter up to 80% of the machine physical memory size. Do not set it
# too large, though, because competition of the physical memory may
# cause paging in the operating system.  Note that on 32bit systems you
# might be limited to 2-3.5G of user level memory per process, so do not
# set it too high.
#innodb_buffer_pool_size=38M
innodb_buffer_pool_size=108M

# Size of each log file in a log group. You should set the combined size
# of log files to about 25%-100% of your buffer pool size to avoid
# unneeded buffer pool flush activity on log file overwrite. However,
# note that a larger logfile size will increase the time needed for the
# recovery process.
#innodb_log_file_size=19M
innodb_log_file_size=54M

It loaded up within a few seconds and all of my data is accessible again!

CJ Dennis

Posted 2017-01-14T11:47:41.420

Reputation: 805