我不知道这是否是mysql(版本5.6.11)的错误,情况如下。今天,当我更新mysqld和kill -9并重新启动mysqld时,我发现它不能再重新启动了。在查看错误日志之后,我发现以下内容:
2013-07-09 17:04:21 7872 [ERROR] InnoDB: Tried to read 1048576 bytes at offset 2097152. Was only able to read 917504.然后,我做了一个字符串,以跟踪哪个文件有问题。结果是ibdata1。
-rw-rw----. 1 mysql mysql 79691776 7月 9 16:51 ibdata1为了提高性能,我将按以下方式更改日志提交。
innodb_flush_log_at_trx_commit = 2但我不认为这会导致数据丢失,因为操作系统在mysql重新启动时不会重新启动。所以有谁能帮我找出原因(也许是杀-9?)这使得数据损坏,以及如何恢复数据,非常感谢。
发布于 2013-07-09 10:47:02
如果你没有后援。
我认为恢复数据库的推荐方法是使用MySQL =4(或更高的值)启动innodb_force_recovery,然后将数据库转储到SQL.Then,删除数据库并从备份中恢复。与其删除原始数据库,我更喜欢使用另一个名称或在另一个服务器中创建新数据库,并首先检查内容。
要遵循的
innodb_force_recovery = 4,然后使用/etc/init.d/mysql restart重新启动MySQL服务器。也请看一下迫使InnoDB恢复.
您不应该杀死MySQL --这不是一个可能导致MySQL服务器崩溃的良好实践,每当您进行任何配置更改时,都应该按照以下步骤进行。
/etc/init.d/mysql stop服务器https://dba.stackexchange.com/questions/45991
复制相似问题