尝试启动MySQL守护程序时发生超时错误。 CentOS 5

时间:2012-01-11 20:18:12

标签: mysql timeout centos

我在CentOS上遇到了MySQL问题。 我遇到了一些问题并备份了我的数据库并删除了所有依赖项的mysql。 之后我跑了重新安装:

 yum groupinstall "MySQL Database"

安装没有错误。

运行mysql守护程序:

service mysqld start

Timeout error occurred trying to start MySQL Daemon.
Starting MySQL:                                            [FAILED]

我也跑了

# /usr/bin/mysql_install_db --user=mysql
Installing MySQL system tables...
120112  1:49:44 [ERROR] Error message file '/usr/share/mysql/english/errmsg.sys'  had only 480 error messages,
but it should contain at least 481 error messages.
Check that the above file is the right version for this program!
120112  1:49:44 [ERROR] Aborting

Installation of system tables failed!

Examine the logs in /var/lib/mysql for more information.
You can try to start the mysqld daemon with:
/usr/libexec/mysqld --skip-grant &
and use the command line tool
/usr/bin/mysql to connect to the mysql
database and look at the grant tables:

shell> /usr/bin/mysql -u root mysql
mysql> show tables

Try 'mysqld --help' if you have problems with paths. Using --log
gives you a log in /var/lib/mysql that may be helpful.

The latest information about MySQL is available on the web at
http://www.mysql.com
Please consult the MySQL manual section: 'Problems running mysql_install_db',
and the manual section that describes problems on your OS.
Another information source is the MySQL email archive.
Please check all of the above before mailing us!
And if you do mail us, you MUST use the /usr/bin/mysqlbug script!

检查日志:

less /var/log/mysqld.log

日志文件为空。我甚至不知道如何调试它,也不知道该怎么做。

有什么建议吗?

谢谢

5 个答案:

答案 0 :(得分:37)

我知道你很久以前问过这个问题,但是因为搜索“Timeout错误的人试图启动MySQL守护程序。”可能会在这里结束,所以有几种可能的解决方案可以解决这个错误。以下是其中一些:

首先,不要运行service mysqld startservice mysqld restart尝试运行:

$ service mysqld stop; mysqld_safe &

mysqladmin脚本中的/etc/init.d/mysqld行存在已知问题。

如果这不起作用,请尝试以下操作:检查是否有足够的可用磁盘空间(尤其是在/var中):

$ df -h

检查这些文件中是否存在可能的错误消息(并非所有文件都存在):

# tail -n 30 /var/log/messages

# tail -n 30 /var/log/mysqld.log

# tail -n 30 /var/lib/mysql/*.err

# tail -n 30 /var/log/mysql/error.log

接下来,确保/etc/my.cnf使用...

socket=/var/lib/mysql/mysql.sock

...目录/var/lib/mysql/实际存在。

设置正确的权限和所有权:

# chown -R mysql.mysql /var/lib/mysql/

# chmod g+w /var/run/mysqld/

# chgrp mysql /var/run/mysqld/

仍然无法使用?尝试将my.cnf中的绑定地址更改为127.0.0.1或0.0.0.0,或注释掉该行。

如果您仍然运气不好,请搜索有关mysql_install_db的更多信息,由于您的InnoDB数据库可能已损坏,因此请查看set-variable=innodb_force_recovery=6

答案 1 :(得分:28)

嘿,有时这是因为你的磁盘空间不足...所以运行一个粗略的df -h来确定! (这恰好发生在我身上:P)。

答案 2 :(得分:7)

在启动mysql服务器之前,重命名文件/var/lib/mysql/ib_logfile0/var/lib/mysql/ib_logfile0,然后重启服务器

在linux / unix中

mv /var/lib/mysql/ib_logfile0  /var/lib/mysql/ib_logfile0_old
mv /var/lib/mysql/ib_logfile1  /var/lib/mysql/ib_logfile1_old

然后

service mysqld restart

答案 3 :(得分:0)

在我的情况下,原因是我在/etc/my.cnf中设置了key_buffer_size,当我评论它时,mysqld开始正常。

答案 4 :(得分:0)

试试这个:

rm $(grep socket /etc/my.cnf | cut -d= -f2)  && service mysqld start