2012-03-12 127 views
0

我得到了启动我的mysql服务器的问题,它工作正常,直到我将“准备好”mysql配置文件(/usr/local/share/mysql/my-huge.cnf)复制到/etc/my.cnf,然后我重新启动我的mysql服务器并且不幸它停止了,而不是重新启动。无法启动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

备份旧的cnf文件。您的服务器的配置与您的my-huge.cnf不匹配 - 尝试从ib_data文件备份我的服务器时,出现与linux类似的错误。 MyISAM工作正常,但innodb没有,因为它使用其他文件来组成你的表.. – B4NZ41 2012-03-12 18:26:53

回答

1

您的ibdata文件大小错误。

更确切地说,您的ibdata文件与您在新my.cnf文件中指定的文件大小不同。在my.cnf文件的旧版本和新版本中检查ibdata的值(以及bin日志文件),你会发现它们是不同的。

你会使用旧值来获取数据库启动;在那里检查其他的innodb值:使所有重要的值相同(在你工作后你会改回它们)。一旦你开始了,转储你的dbs,然后关闭mysqld。编辑my.cnf文件,删除ibdata,重新启动数据库,然后重新导入您的数据库。 Presto - 固定。

+0

嗯,它非常奇怪,因为当我删除日志文件,“ibdata”文件,最后是'my.cnf'文件... mysql正在盯着,但为什么它开始没有配置?当我将任何配置文件放入'/ etc'时,出现问题...... – Cyclone 2012-03-12 18:41:25

+0

如果没有配置文件,mysqld将以所有默认值启动,所以这就是没有配置文件的原因。我认为你应该对这一系列任务好:备份(因为你有ibdata文件中的数据),删除ibdata和ib_logfile [01],设置你想要的配置,开始 - 你就可以使用它。重新加载你的数据,你会一切设置。 – 2012-03-13 12:38:58

0

它看起来像你my.cnf文件不好或有一些坏的条目。你有my.cnf的副本,你用my-huge.cnf取代了吗?我会尝试在两个文件上运行差异,看看发生了什么。

+1

它不是我自己的'my.cnf'文件 - 它的读取使用mysql安装后出现的文件,默认情况下没有'/ etc /'中的'my.cnf'文件但是mysql服务器工作正常!然后我复制了示例文件,并开始出现问题,也尝试删除此文件并启动mysql服务器 - 没有结果,也尝试用我在另一台服务器上使用的文件替换此cnf文件 - 但仍然无法启动。 .. – Cyclone 2012-03-12 18:28:53

0

也许Innodb日志已损坏。您应该备份重命名此日志并重新启动mysqld,然后mysqld创建新日志并希望正确重启。

+0

已经尝试过你所说的 - 没有结果。 – Cyclone 2012-03-12 18:38:38