由于数据库损坏,MySQL无法启动

时间:2017-10-03 23:08:42

标签: mysql database corruption

日志:

  

Oct 03 22:00:46 ip-172-31-3-124 mysqld [4294]:InnoDB:字节偏移0,len 16384,i / o类型10。   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:InnoDB:如果你在mysqld启动时遇到这个错误,请检查一下   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:InnoDB:你的my.cnf匹配你在的ibdata文件   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:InnoDB:MySQL服务器。   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:2017-10-03 22:00:46 7fe26c4fd780 InnoDB:文件fil0fil.cc第5601行中的线程140610456508288中的断言失败   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:InnoDB:我们故意生成一个内存陷阱。   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:InnoDB:向http://bugs.mysql.com提交详细的错误报告。   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:InnoDB:如果你反复断言失败或崩溃,甚至   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:InnoDB:mysqld启动后立即出现,可能有   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:InnoDB:InnoDB表空间中的损坏。请参阅   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:InnoDB:http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:InnoDB:关于强制恢复。   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:171003 22:00:46 [错误] mysqld得到信号6;   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:这可能是因为你遇到了一个bug。这个二进制文件也有可能   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:或者它所链接的其中一个库是腐败的,不正确的构建,   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:或配置错误。此错误也可能由硬件故障引起。   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:要报告此错误,请参阅https://mariadb.com/kb/en/reporting-bugs   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:我们会尽力挖掘一些有希望帮助的信息   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:诊断问题,但既然我们已经崩溃了,   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:肯定是错的,这可能会失败。   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:服务器版本:10.0.31-MariaDB-0ubuntu0.16.04.2   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:key_buffer_size = 16777216   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:read_buffer_size = 131072   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:max_used_connections = 0   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:max_threads = 153   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:thread_count = 0   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:有可能mysqld最多可以使用   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:key_buffer_size +(read_buffer_size + sort_buffer_size)* max_threads = 352327 K字节的内存   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:希望没问题;如果不是,减少等式中的一些变量。   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:线程指针:0x0   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:尝试回溯。您可以使用以下信息查找   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:mysqld死在哪里。如果你在此之后没有看到任何消   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:非常错误......   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:stack_bottom = 0x0 thread_stack 0x30000   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld(my_print_stacktrace + 0x3d)[0xc1d4ad]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld(handle_fatal_signal + 0x3bf)[0x7449df]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ lib / x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7fe26b613390]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ lib / x86_64-linux-gnu/libc.so.6(gsignal+0x38)[0x7fe26abe2428]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ lib / x86_64-linux-gnu/libc.so.6(abort+0x16a)[0x7fe26abe402a]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0xab1c8b]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0xa7a4ec]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0xa7b4f4]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0xa5f4c5]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0xa236e2]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0xa17fad]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0xa18b2d]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0xa1997e]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0xa03d28]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0x9364c5]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld(_Z24ha_initialize_handlertonP13st_plugin_int + 0x5e)[0x746ade]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0x5d7f15]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld(_Z11plugin_initPiPPci + 0x530)[0x5d8600]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld [0x528c13]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld(_Z11mysqld_mainiPPc + 0x570)[0x52ea30]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ lib / x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fe26abcd830]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:/ usr / sbin / mysqld(_start + 0x29)[0x523f09]   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:http://dev.mysql.com/doc/mysql/en/crashing.html的手册页包含   10月03日22:00:46 ip-172-31-3-124 mysqld [4294]:可以帮助您找出导致崩溃的原因的信息。   10月03日22:00:46 ip-172-31-3-124 mysqld_safe [4311]:来自pid文件/var/run/mysqld/mysqld.pid的mysqld已结束   10月03日22:01:17 ip-172-31-3-124 /etc/init.d/mysql[4590]:0进程活着和' / usr / bin / mysqladmin --defaults-file = / etc /mysql/debian.cnf ping'结果   10月03日22:01:17 ip-172-31-3-124 /etc/init.d/mysql[4590]:[61B blob数据]   10月03日22:01:17 ip-172-31-3-124 /etc/init.d/mysql[4590]:错误:'无法通过socket'连接到本地MySQL服务器/var/run/mysqld/mysqld.sock' (2"没有这样的文件或目录")'

系统是Ubuntu 16.04。

我备份了数据库文件并添加了:

  

的[mysqld]   innodb_force_recovery = 6

我仍然无法启动mysql。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

从MySQL自己的页面: Forcing InnoDB recovery

他们说不要使用高于3的值,因为:

  

如果您能够使用innodb_force_recovery值为3或更低版本转储表,那么您相对安全,只有损坏的单个页面上的某些数据会丢失。值为4或更高被认为是危险的,因为数据文件可能会永久损坏。值6被认为是极端的,因为数据库页面处于过时状态,这反过来可能会在B树和其他数据库结构中引入更多损坏。

不幸的是,InnoDB的my.cnf值似乎是正确的(这让我遇到了麻烦)。

我讨厌将此作为正式答案,但您可能需要在某些关键文件损坏之前找到备份。

InnoDB文件与ISAM不同,您不能只是重新创建表格,然后用您拥有的副本覆盖文件。在innodb_data_file_path {。}}提交的文件中保留了大量信息。

IF 您有innodb_file_per_table并且没有备份,那么您可能必须“重新安装”mysql并重新创建数据库并从当前文件备份中移动表并使用此恢复程序。我曾经用过这个。

InnoDB lost table but file exists