不幸的是重启后我无法启动mysql:
root@server:/etc/mysql# systemctl status mysql.service
● mysql.service - LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mysql)
Active: failed (Result: exit-code) since Di 2016-03-08 08:57:15 CET; 3min 59s ago
Process: 17437 ExecStart=/etc/init.d/mysql start (code=exited, status=1/FAILURE)
Mär 08 08:56:46 server mysqld[17584]: /usr/sbin/mysqld[0x529805]
Mär 08 08:56:46 server mysqld[17584]: /usr/sbin/mysqld(_Z11mysqld_mainiPPc+0x4e6)[0x52f316]
Mär 08 08:56:46 server mysqld[17584]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fa063c87b45]
Mär 08 08:56:46 server mysqld[17584]: /usr/sbin/mysqld[0x524c81]
Mär 08 08:56:46 server mysqld[17584]: The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
Mär 08 08:56:46 server mysqld[17584]: information that should help you find out what is causing the crash.
Mär 08 08:57:15 server mysql[17437]: Starting MariaDB database server: mysqld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . failed!
Mär 08 08:57:15 server systemd[1]: mysql.service: control process exited, code=exited status=1
Mär 08 08:57:15 server systemd[1]: Failed to start LSB: Start and stop the mysql database server daemon.
Mär 08 08:57:15 server systemd[1]: Unit mysql.service entered failed state.
root@server:/etc/mysql#
有任何想法吗?
以下是日志的其余部分:
InnoDB: End of page dump
2016-03-08 08:14:27 7f7d59255780 InnoDB: uncompressed page, stored checksum in field1 69380781, calculated checksums for field1: crc32 3137222060, innodb 69380781, none 3735928559, stored checksum in field2 3039731604, calculated checksums for field2: crc32 3137222060, innodb 1542943995, none 3735928559, page LSN 17 3063636778, low 4 bytes of LSN at page end 3063325976, page number (if stored to page already) 380, space id (if created with >= MySQL-4.1.1 and stored already) 0
InnoDB: Page may be an update undo log page
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 380.
InnoDB: You may have to recover from a backup.
InnoDB: It is also possible that your operating
InnoDB: system has corrupted its own file cache
InnoDB: and rebooting your computer removes the
InnoDB: error.
InnoDB: If the corrupt page is an index page
InnoDB: you can also try to fix the corruption
InnoDB: by dumping, dropping, and reimporting
InnoDB: the corrupt table. You can use CHECK
InnoDB: TABLE to scan your table for corruption.
InnoDB: See also http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
InnoDB: Ending processing because of a corrupt database page.
2016-03-08 08:14:27 7f7d59255780 InnoDB: Assertion failure in thread 140176343259008 in file buf0buf.cc line 4506
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
160308 8:14:27 [ERROR] mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
To report this bug, see http://kb.askmonty.org/en/reporting-bugs
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.
Server version: 10.0.23-MariaDB-0+deb8u1
key_buffer_size=16777216
read_buffer_size=131072
max_used_connections=0
max_threads=153
thread_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 352315 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
Thread pointer: 0x0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x0 thread_stack 0x30000
addr2line: 'mysqld': No such file
mysqld(my_print_stacktrace+0x2e)[0xbf93ce]
mysqld(handle_fatal_signal+0x392)[0x732e52]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xf8d0)[0x7f7d58e3a8d0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x37)[0x7f7d579e3067]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x148)[0x7f7d579e4448]
mysqld[0xa94ccb]
mysqld[0xaaa8fe]
mysqld[0xa8ec8e]
mysqld[0xa5236a]
mysqld[0xa471f1]
mysqld[0xa47d79]
mysqld[0xa48cd6]
mysqld[0xa32259]
mysqld[0x973995]
mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0x5e)[0x734e9e]
mysqld[0x5cf3f5]
mysqld(_Z11plugin_initPiPPci+0x4b0)[0x5d0620]
mysqld[0x529805]
mysqld(_Z11mysqld_mainiPPc+0x4e6)[0x52f316]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f7d579cfb45]
mysqld[0x524c81]
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
答案1
在您发布的日志之前的日志中可能有有用的信息,但这并不重要。
你应该阅读日志并发布它们。你不要指望我们为您阅读它们。日志包含您需要了解的信息和您需要遵循的说明。
答案2
我能够通过使用innodb_force_recovery = 1
和导出转储来解决问题。导出后,我删除了ib*
-files /var/lib/mysql
(之前备份!)并重新启动了 mysql,没有innodb_force_recovery
。
现在我可以再次导入转储了。