如何修复阻止从损坏的硬盘中迁移 MySQL 数据的错误?

如何修复阻止从损坏的硬盘中迁移 MySQL 数据的错误?

我正在尝试从坏掉的硬盘中恢复 MySQL 数据库。我按照此处的说明复制了旧文件:https://stackoverflow.com/questions/40479395/export-mysql-datatabase-from-a-dead-hard-drive-xampp但我的错误日志中收到以下消息:

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

旧数据库是 5.5.40,新数据库是 5.5.54,因为我无法成功安装完全相同的版本(安装程序所需的下载链接不再有效)。错误仅仅是文件中指定的大小,.cnf还是掩盖了其他东西?

答案1

感谢@ITSolutions,我解决了这个问题。

我在(位置有时可能不同)找到了我的cnf文件。C:\Program Files\MySQL\MySQL Server 5.5\my.ini

我做了以下更改(请注意注释掉的原始值)并重新启动了 MySQL 服务。

# 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

它在几秒钟内就加载完毕并且我的所有数据都可以再次访问了!

相关内容