我遇到了启动我的mysql服务器的问题,它工作正常,直到我将“准备好”的mysql配置文件(/usr/local/share/mysql/my-huge.cnf
)复制到/etc/my.cnf
,然后我重新启动了我的mysql服务器并且不幸地它停了下来,而不是重新启动。
我没有任何控制台错误,但这会显示在我的/var/db/mysql/hostname.pid
文件中:
120312 17:57:43 mysqld_safe mysqld from pid file /var/db/mysql/hostname.pid ended
120312 17:58:09 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
120312 17:58:09 InnoDB: The InnoDB memory heap is disabled
120312 17:58:09 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120312 17:58:09 InnoDB: Compressed tables use zlib 1.2.3
120312 17:58:09 InnoDB: Initializing buffer pool, size = 128.0M
120312 17:58:09 InnoDB: Completed initialization of buffer pool
120312 17:58:09 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
120312 17:58:09 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
120312 17:58:09 InnoDB: Assertion failure in thread 34387018176 in file fsp0fsp.c line 2040
InnoDB: Failing assertion: inode
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.
17:58:09 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.
key_buffer_size=8388608
read_buffer_size=131072
max_used_connections=0
max_threads=151
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 = 338444 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
120312 17:58:09 mysqld_safe mysqld from pid file /var/db/mysql/hostname.pid ended
怎么了?
答案 0 :(得分:1)
您的ibdata文件大小错误。
更确切地说,您的ibdata文件与您在新my.cnf文件中指定的文件大小不同。在my.cnf文件的新版本和新版本中检查ibdata(和bin日志文件,当你在它时)的值 - 你会发现它们是不同的。
您将 使用旧值来启动数据库;检查那里的其他innodb值:使所有重要的值相同(在你使它工作后你会改回它们)。一旦你启动它,转储你的dbs然后关闭mysqld。编辑my.cnf文件,删除ibdata,重新启动数据库,然后重新导入数据库。 Presto - 修复。
答案 1 :(得分:0)
看起来你的my.cnf文件很糟糕或者里面有一些错误的条目。你有my-huge.cnf替换的my.cnf的副本吗?我会尝试在这两个文件上运行差异,看看发生了什么。
答案 2 :(得分:0)
也许Innodb日志已损坏。您应该备份重命名此日志并再次重新启动mysqld,然后mysqld创建新日志并希望正确重启。