2016-08-05 32 views
0

无法找出MySQL服务器出了什么问题。错误日志如下。我尝试了innodb恢复和删除文件并重新启动,但它没有帮助。 http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.htmlPercona服务器退出时未更新PID文件

InnoDB: Serious error! InnoDB is trying to free page 1344 
InnoDB: though it is already marked as free in the tablespace! 
InnoDB: The tablespace free space info is corrupt. 
InnoDB: You may need to dump your InnoDB tables and recreate the whole 
InnoDB: database! 
InnoDB: Please refer to 
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html 
InnoDB: about forcing recovery. 
160805 9:43:22 InnoDB: Assertion failure in thread 139839724754688 in file fsp0fsp.c line 3329 
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.5/en/forcing-innodb-recovery.html 
InnoDB: about forcing recovery. 
16:43:22 UTC - 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. 
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. 
Please help us make Percona Server better by reporting any 
bugs at http://bugs.percona.com/ 

key_buffer_size=8388608 
read_buffer_size=131072 
max_used_connections=0 
max_threads=153 
thread_count=0 
connection_count=0 
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 343009 K bytes of memory 
Hope that's ok; if not, decrease some variables in the equation. 

Thread pointer: 0x0 
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 = 0 thread_stack 0x40000 
/usr/sbin/mysqld(my_print_stacktrace+0x35)[0x7ce5a5] 
/usr/sbin/mysqld(handle_fatal_signal+0x4b4)[0x6a2f54] 
/lib64/libpthread.so.0(+0xf7e0)[0x7f2f139367e0] 
/lib64/libc.so.6(gsignal+0x35)[0x7f2f11f915e5] 
/lib64/libc.so.6(abort+0x175)[0x7f2f11f92dc5] 
/usr/sbin/mysqld[0x919d97] 
/usr/sbin/mysqld[0x91a148] 
/usr/sbin/mysqld[0x8bb858] 
/usr/sbin/mysqld[0x97b427] 
/usr/sbin/mysqld[0x97b9d8] 
/usr/sbin/mysqld[0x96f907] 
/usr/sbin/mysqld[0x88e7a7] 
/usr/sbin/mysqld[0x882d6c] 
/lib64/libpthread.so.0(+0x7aa1)[0x7f2f1392eaa1] 
/lib64/libc.so.6(clone+0x6d)[0x7f2f12047aad] 
You may download the Percona Server operations manual by visiting 
http://www.percona.com/software/percona-server/. You may find information 
in the manual which will help you identify the cause of the crash. 
160805 09:43:22 mysqld_safe mysqld from pid file /var/lib/mysql/websult.arvixevps.com.pid ended 

回答

1
InnoDB: Error: log file ./ib_logfile0 is of different size 0 33554432 bytes 
InnoDB: than specified in the .cnf file 0 5242880 bytes! 

的InnoDB当日志文件的大小是从什么它期待不同不喜欢它。如果存在文件丢失或损坏的风险,则可能无法用于数据恢复。 MySQL不会对数据造成进一步的损害,而是会关闭MySQL。

文件大小为5MB是默认值。但是你的日志文件的大小是32MB。所以很显然你使用有一个配置,将日志文件大小设置为32MB。可能有人删除了/etc/my.cnf文件,或对其进行了编辑。

您可以编辑您的/etc/my.cnf,并设置:

[mysqld] 
innodb_log_file_size=33554432 

然后重启MySQL服务。


“你的数据库可能已损坏,或者您可能复制InnoDB的InnoDB的:表而不是InnoDB的日志文件”

这很好理解。我怀疑你(或其他人)试图在不理解MySQL的情况下移动文件。如果您有最近的备份,可以删除ibdata1ib_logfile*,启动MySQL,然后恢复备份。

如果您没有备份,您需要一位能够解决此问题的MySQL顾问。我建议https://twindb.com/mysql-data-recovery/https://www.percona.com/solutions/fix/data-recovery获得专家的帮助。

+0

感谢您的回答,我更新了my.cnf,现在错误似乎有所不同。请给我看一下。 –

+0

编辑完问题后添加新错误,我会看看是否有任何想法。 –

+0

嗨@Bill Karwin,我已经更新了错误日志的详细信息。请看一下。 –

相关问题